kittiewan's Forum Posts

  • When you create a new family you can add multiple object plugin types to it if you select and add them all at once. It generates errors, but if you ignore them, it seems to work. I assume that since if you add one object type to the family, all other object types are removed from the lhs, it is not intended for the families to support multiple types. But there is nothing done to prevent adding them all at once.

    To reproduce the problem, use the Unique ID (UID) example supplied with C2. Add a family to the project and select the three objects on the lhs and move them all at once to the family. Click OK and then Ignore all of the errors. On the event sheet change the references to Sprite to Family1 and run. It all works as before, except the UIDs are also displayed for the text objects. (Which demonstrates that this could be a cool feature at some later date.)

    Here are the errors I received when I clicked OK after adding the objects to the family.

    ---------------------------

    Construct 2 Check failure

    ---------------------------

    Check failure! This is probably a bug:

    Adding wrong plugin type to family

    Condition: plugin_id_str.empty() || type_->GetPluginID() == plugin_id_str

    File: Projects\Family.cpp

    Line: 185

    Function: void __cdecl Family::AddObjectType(class ObjectType *)

    Build: release 82 (64-bit) checked

    Component: Construct 2 IDE

    (Last Win32 error: 0)

    You are using a 'checked' release of Construct 2, intended for testing, which causes certain errors to be reported this way. Hit Ctrl+C to copy this messagebox - it's useful information for the developers, so please include it with any bug reports! Click 'Abort' to quit (unsaved data will be lost!),'Retry' to turn off messages for this session and continue, or 'Ignore' to continue normally.

    ---------------------------

    Abort   Retry   Ignore   

    ---------------------------

    ---------------------------

    Construct 2 Check failure

    ---------------------------

    Check failure! This is probably a bug:

    Family does not have a single plugin type

    Condition: AreAllSamePluginType()

    File: Projects\Family.cpp

    Line: 196

    Function: void __cdecl Family::AddObjectType(class ObjectType *)

    Build: release 82 (64-bit) checked

    Component: Construct 2

    (Last Win32 error: 0)

    You are using a 'checked' release of Construct 2, intended for testing, which causes certain errors to be reported this way. Hit Ctrl+C to copy this messagebox - it's useful information for the developers, so please include it with any bug reports! Click 'Abort' to quit (unsaved data will be lost!),'Retry' to turn off messages for this session and continue, or 'Ignore' to continue normally.

    ---------------------------

    Abort   Retry   Ignore   

    ---------------------------

    ---------------------------

    Construct 2 Check failure

    ---------------------------

    Check failure! This is probably a bug:

    Adding wrong plugin type to family

    Condition: plugin_id_str.empty() || type_->GetPluginID() == plugin_id_str

    File: Projects\Family.cpp

    Line: 185

    Function: void __cdecl Family::AddObjectType(class ObjectType *)

    Build: release 82 (64-bit) checked

    Component: Construct 2 IDE

    (Last Win32 error: 0)

    You are using a 'checked' release of Construct 2, intended for testing, which causes certain errors to be reported this way. Hit Ctrl+C to copy this messagebox - it's useful information for the developers, so please include it with any bug reports! Click 'Abort' to quit (unsaved data will be lost!),'Retry' to turn off messages for this session and continue, or 'Ignore' to continue normally.

    ---------------------------

    Abort   Retry   Ignore   

    ---------------------------

    ---------------------------

    Construct 2 Check failure

    ---------------------------

    Check failure! This is probably a bug:

    Family does not have a single plugin type

    Condition: AreAllSamePluginType()

    File: Projects\Family.cpp

    Line: 196

    Function: void __cdecl Family::AddObjectType(class ObjectType *)

    Build: release 82 (64-bit) checked

    Component: Construct 2 IDE

    (Last Win32 error: 0)

    You are using a 'checked' release of Construct 2, intended for testing, which causes certain errors to be reported this way. Hit Ctrl+C to copy this messagebox - it's useful information for the developers, so please include it with any bug reports! Click 'Abort' to quit (unsaved data will be lost!),'Retry' to turn off messages for this session and continue, or 'Ignore' to continue normally.

    ---------------------------

    Abort   Retry   Ignore   

    ---------------------------

    ---------------------------

    Construct 2 Check failure

    ---------------------------

    Check failure! This is probably a bug:

    Family does not have a single plugin type

    Condition: (*i)->AreAllSamePluginType()

    File: Bars\ProjectBar - Families.cpp

    Line: 30

    Function: void __cdecl CProjectBar::AddFamilyFolder(struct _TREEITEM *,class Project *)

    Build: release 82 (64-bit) checked

    Component: Construct 2 IDE

    (Last Win32 error: 0)

    You are using a 'checked' release of Construct 2, intended for testing, which causes certain errors to be reported this way. Hit Ctrl+C to copy this messagebox - it's useful information for the developers, so please include it with any bug reports! Click 'Abort' to quit (unsaved data will be lost!),'Retry' to turn off messages for this session and continue, or 'Ignore' to continue normally.

    ---------------------------

    Abort   Retry   Ignore   

    ---------------------------

    ---------------------------

    Construct 2 Check failure

    ---------------------------

    Check failure! This is probably a bug:

    Family does not have a single plugin type

    Condition: (*i)->AreAllSamePluginType()

    File: Bars\ProjectBar - Families.cpp

    Line: 30

    Function: void __cdecl CProjectBar::AddFamilyFolder(struct _TREEITEM *,class Project *)

    Build: release 82 (64-bit) checked

    Component: Construct 2 IDE

    (Last Win32 error: 0)

    You are using a 'checked' release of Construct 2, intended for testing, which causes certain errors to be reported this way. Hit Ctrl+C to copy this messagebox - it's useful information for the developers, so please include it with any bug reports! Click 'Abort' to quit (unsaved data will be lost!),'Retry' to turn off messages for this session and continue, or 'Ignore' to continue normally.

    ---------------------------

    Abort   Retry   Ignore   

    ---------------------------

  • I'm almost finished making a tutorial for a Memory Match game if you can stand to wait a day or two. It takes an easier approach to creating and laying out the cards.

    Edit: Maybe you'd like to be my tester?

  • Didn't see your question about depth sorting.

    In 2D games, depth sorting is a way of faking a third dimension by examining the relative Y positions of two objects to decide which one is supposed to be in front of the other. It is accomplished by moving one object to a layer above or below the first object's layer, or using z-order to move one object to the front or back of the layer.

    Although it isn't called depth sorting, it is discussed in Part 2 of the tutorial on page 5 (starting with Families)

    The problem:

    hen you ran the game did you notice that Mikey always appears in front of the trees, rocks, and walls? This doesn?t look right at all!

    And the solution:

    his event says that if Mikey is overlapping the Terrain family from the north (offset 0,100) then put him behind any objects in the family. Else is a special system condition when applied here it means ?in any other circumstance? send Mikey to the front. Try out the new and improved game!

    Of course there is no Else in C2, so that isn't the exact logic I used to accomplish it.

    Anyway, you can see the depth sorting happen in the demo if you try to walk behind and in front of the trees. When Mikey's "feet" are higher than the tree's "feet", Mikey is considered to be behind the tree, he needs to be moved to the back of the z-order. If Mikey's feet are in front of the trees feet, Mikey is considered to be in front of the tree, he needs to be moved to the front of the z-order. Notice as you pass beside the tree the moment when the switch is made. In the case of a tree it looks pretty good - sort of like Mikey is brushing aside the branches in his way. (If the object is solid, like a wall, it doesn't look quite so good, so you have to use solids cleverly to keep the player from getting too close.)

    For a maze game, as the player moves through the maze the depth sorting is really important to make the character appear in front of or behind the maze walls (like the castle walls and the house in the demo.)

    Don't worry. It is much simpler than it seems when you first learn you have to do it! Took me awhile to grasp what was going on.

    EDIT: One of the reasons I wondered about making this work for the free version of C2 is that it is really easy to deal with depth sorting if you have LOTS of layers to work with. But I managed to do all that is needed with 4 layers.

  • I'm waiting to hear from scidave about how he wants the port posted, since Mikey is his baby. Of course I will post all parts if it is okay with him.

    I forgot to mention that so far I'm only using 4 layers and about 25 events (more or less, depending on how they are counted) so it should work with the free version, at least through part 2.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Part 1 is done of course, but I'm not posting it now, since it isn't very interesting as a demo. In part 1 since Mikey can't do anything except walk around in the first area. Take away the conversation with Jill and the Key Guard and the ability to get through the castle doors, and you have part 1! Oh, and of course there isn't any depth sorting in part 1. For your needs in creating a maze game, the depth sorting is quite important.

  • I managed to finish up part 2. It looks very similar, although there are some significant differences in implementation.

    Here is a link to the demo:

    Mikey's Adventure Part 2 for C2

  • Thanks for the heads up!

  • I've got it partially done--through lesson 1, and started lesson 2. I didn't follow it exactly, in part because Construct and Construct 2 are so different, but in part because I wanted somethings a little different, such as making a tile sprite object with different frames instead of using tile background objects. This approach means I just have to lay out the grid once, and then just swap frames to switch between dirt, grass, water, etc. for different levels. I was working on how to manage the layering of the trees and rocks when I got sidetracked. I'll see what is needed to finish it up and let you know.

    Edit: Question. Do you think this would have to be done for the free version, with its limited layers, or can I go for the paid version?

    scidave, I hope you don't mind. If you want to take over once I get it running, I'll give you a list of what I did differently. Or if you'd rather do it yourself, let me know!

    Pretty picture for encouragement...

    <img src="http://dl.dropbox.com/u/57899112/mikeysadventure.PNG" border="0" />

    Edit #2: I got the z-order sorting working except for where the tall door and tall wall adjoin, and Mikey can overlap both objects. Cheat solution is to just block that little spot. Real solution is to look at neighboring terrain objects and move them forward or back, too. Hmmm. That doesn't seem right. They should be moving with Mikey overlaps them, too. A collision mask problem?

    Edit #3: It was an origin problem. The wall and the door had different origins. I shouldn't have messed with them!

  • You're welcome! It was fun to do. I had a few minutes to do an escape variation. Press X when the player is trapped and the trap flips open. Most of the logic was to handle making flowers pickable if the player is in the same cage with them, or if the cage is opened.

    There is a problem I noticed when the player is almost trapped when the trap falls, but not enough to be trapped by the walls. The solid walls are still enabled so the player can't walk in front of the cage. Other than that,it basically works.

    TrapEscape.capx

  • There are a number of ways you could approach this. Here's an example of one way to do it.

    TrapExample.capx

    A boolean instance variable called "Tripped" on the trap determines whether the trap top is created and dropped.

    If the player collides with the trap when Tripped is False, then the trap is triggered (that is, the trap top is created and set in motion.) The Tripped instance variable is set to True.

    If the player is overlapping the trap top when it lands (collides with the trap), the trap top generates some solid walls that trap the player. Otherwise the trap top is moved to a lower layer so that from then on the player can move in front of it.

    As demonstrated in the example, this works with multiple traps, since each has its own Tripped instance variable, and the player collision automatically selects the trap to to test.

    I didn't show what happens when the player escapes. I would just destroy the trap walls and move the trap top to the lower layer.

    Hope this helps.

  • This is great news. I purchased several months ago and was just at the website yesterday wondering what was going on.

  • Absolutely people will buy it. If it's good, and you market it well.

    Also, besides the Appstore take a look at the Barnes & Noble Nook store and the Amazon Kindle stores (I looked for interactive comic.) You might want to buy a couple of them--sort of check out the competition.

    Also check out www.pixton.com and www.avecomics.com. They're betting on them selling.

  • Did you check out Velojet's Building a Platform Game-A Beginner's Tutorial? He covers switching animations in response to platform events nicely.

    BTW, I had lots of problems with twitching characters when I tried to use a platformer behavior and a physics behavior on the same object. You need to disable one before using the other.

  • When you copy and paste a text object the text properties such as font, color, alignment transfer to the copy. However when you clone a text object, they do not. It appears that Clone Object Type for a text object is the same as insert new object except for the object name being derived from the cloned object. (EDIT: It will clone the instance variables and behaviors attached to the original. Just not the text properties.)

    To see the issue:

    1) Create a text object.

    2) Change the text, font size and/or color.

    3) Right click on the text object and choose the Clone Object Type item from the context menu.

    4) Click to place the cloned object. The text properties do not transfer.

    In contrast, this works well:

    1) Copy the text object created in step 1 above.

    4) Paste and then click to place. The text properties in the new instance are the same as in the copied instance.

    This is a relatively low priority since there is a workaround, but it is tedious when you have a lot of text objects you want to have the same formatting which you must perform over and over.

    EDIT: Also, I've seen the same issue when you have created a sprite, made some changes to size and opacity, and then try to clone it. The changes you made don't transfer to the clone. For example, I created a rectangle sprite that I faded and changed opacity to use for image buttons, but when I tried to clone them I ended up having to resize and change the opacity again.

  • So many choices... No, so many great choices! Good luck, everyone.