PixelHero's Recent Forum Activity

  • That makes sense!

    I was hoping for the behavior, to avoid any confusion over why certain actions were done one way vs the other, but that's pretty minor, and will be far faster to implement.

    Thanks!

  • I understand, but I'm trying to teach a young child the absolute fundamentals. And I'm trying to teach her by slowly introducing more concepts. She doesn't even understand what a variable is yet (not in computer programming terms anyway).

    We're just starting to go over what conditions are. So I'd like to be able to build an "animal" behavior. She can call the actions to "go to food bowl" etc, and behind the scenes, I can set a target destination and control the movement, etc)

    How do I create custom behaviors so that they show up in the UI with their own events and actions?

  • I'm trying to teach my daughter, and I want to abstract away some complexity and provide a set of events and actions for her to use without needing to know the details behind them.

    How do you make custom behaviors in Construct 3? I've tried scouring the documentation, but I don't see anything other than the SDK. Is that the way, javascript only?

  • Hmmm... I'm not sure what I did, but I broke it. I can export my data to a new capx, and Construct2 can't open it.

    Failed to open project....

    Found an event condition referencing an object 'DataSets', but this does not appear to be an object type or family in the project

    Under element: c2eventsheet\events\event-group\sub-events\event-block\sub-events\event-block\sub-events\event-block\sub-events\event-block\conditions\condition

    Line 74, column 49

    in c:\.....\data.xml

    I tried to get the data.xml, but it appears to be temporary and was gone even before I closed the dialog.

    here's the Json:

    {"c2dictionary":true,"data":{"This is a string":"{\"c2dictionary\":true,\"data\":{\"This is a key\":\"{\\\"c2array\\\":true,\\\"firstRowIsColumnNames\\\":true,\\\"size\\\":[7,2,1],\\\"data\\\":[[[\\\"column1\\\"],[\\\"column2\\\"]],[[0],[0]],[[1],[1]],[[2],[2]],[[3],[3]],[[4],[4]],[[5],[5]]]}\"}}","This is another string":"{\"c2dictionary\":true,\"data\":{\"This is a key\":\"{\\\"c2array\\\":true,\\\"firstRowIsColumnNames\\\":true,\\\"size\\\":[7,2,1],\\\"data\\\":[[[\\\"column1\\\"],[\\\"column2\\\"]],[[0],[0]],[[1],[1]],[[2],[2]],[[3],[3]],[[4],[4]],[[5],[5]]]}\"}}","This is yet another string":"{\"c2dictionary\":true,\"data\":{\"This is a key\":\"{\\\"c2array\\\":true,\\\"firstRowIsColumnNames\\\":true,\\\"size\\\":[7,2,1],\\\"data\\\":[[[\\\"column1\\\"],[\\\"column2\\\"]],[[0],[0]],[[1],[1]],[[2],[2]],[[3],[3]],[[4],[4]],[[5],[5]]]}\"}}"}}

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

    *edit*

    Importing into a blank project appears to have fixed the issue. I'm not quite sure exactly what broke, but I can't get it to fail on a blank project. *shrug* If I imported into existing project or "save all to capx" the resulting capx would break. But If I created one in Construct as blank and then imported, it worked.

  • I usually just destroy them on layout start.

    Depending on the type of object, you can also start it with 0 opacity if you don't want to destroy it for behavior reasons. That way it won't show until you intend it to.

  • Tnindie

    Taking a frame can be done like so:

    scirra.com/forum/taking-photo-of-an-area-and-turn-it-into-sprite_topic79223.html

    Capturing every frame... I don't know about that. If it exists, it is probably a plugin, I don't think there is a built in way to do that.

  • I have two approaches:

    I have an event sheet reserved for globals. Then they are all together in their own file. Since they are globals, I don't have to worry about including it in all my other event sheets, but I can reuse them for different layouts.

    However, if I need an object to hold the variables, I've found a size zero array works well (set the Width to 0, leave Height and Depth at 1). I can give it instance variables for the globals, set it to persist, and I don't have to give it a space in the layout.

    I might have misunderstood you, though.

  • Burvey

    There isn't a trigger for this that I've found. (That is, a reactive trigger that will happen whenever the variable changes anywhere. Personally, I want these too, but I can see why they aren't in the software).

    I've been able to handle this in two ways:

    1) Have two variables instead of one. The old value that only gets set in my checker and a "new value" everywhere else. I can compare to see if it got set Every Tick.

    2) Or, I create a function that handles the what I want to do and call it everywhere I change the value.

    Neither is truly reactive, but they work.

  • <img src="smileys/smiley25.gif" border="0" align="middle" /> There are folders for events. I have quite a number of folders, and I have an event sheet in the top one that includes all the sub sheets so I can easily bulk-import the logic.

    If you right-click on "Event sheets," do you get the "Add subfolder" option?

    (Just took a quick snapshot of prototype I started a few days ago -- this is what you're looking for, right?)

    db.tt/3bX0U084

  • Well, logically, they could do it, but it has to do with picking. A pick by UID (as it currently is), sets the object type in the editor, so it knows exactly what actions to offer.

    A global pick by UID can definately happen, but with out some type detection events (like, if object is PlayerSprite), then only common events would be allowed. And I don't even think Destroy is common, because that isn't available to Mouse, etc.

    So you could pick, but without some type detection events, I don't think you could do anything with it. Now, if we get filtering type detection events, that could work...

    But then you could have done the selective pick that it currently does. I just don't think that works with their editor paradigm.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • It might be better to flip that around ArcadEd. In your example it would be the time since the previous attack that would determine what attack you could perform (rather than time since previous), and I believe he's actually trying to prevent canceling the punch.

    I would invert the meaning of your punchtimer like so:

    variable punchTimer = 0

    every Tick | subtract DT from punchTimer

    then actions are only allowed if the punchTimer = 0. You can even prevent changes in direction or other actions that would cancel the punch. In this way, different punch styles can set the punchTimer to different values, so you can have more time to recover from a running punch than a idle punch, for example.

    'Course, I could have also misunderstood what he wanted to do, too.

  • I don't have one with me, but can you make touch simulate click? This is sometimes a problem in multi-platform because of multiple input methods, but if you are touch only then you might be able to get around it this way.

    In the layout view, select your touch object and set "Use mouse input" to Yes, and give it a whirl.

    There is probably a better answer, but it would require someone with more experience than me.

PixelHero's avatar

PixelHero

Member since 21 Oct, 2013

None one is following PixelHero yet!

Trophy Case

  • 11-Year Club
  • RTFM Read the fabulous manual
  • Email Verified

Progress

13/44
How to earn trophies