Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - IsleInTheHeavens

Pages: 1
1
Dialog Extension / Re: [Help] extention not enabled
« on: March 02, 2014, 07:29:38 am »
I can't believe it was that simple -.-

I wondered about why the darn extension wouldn't show up in my settings for the better part of the last few days.
Thanks for straightening this up in the forum, although you might wanna tweak the .zip file to only contain one level of "dialog" - might prevent further confusion.

I haven't donated anything yet to your cause but I just might reconsider this, once I have actually gotten around to using the extension.
I seriously love you guys for doing this and hope that your work won't go unnoticed.

Keep up the great work!

2
Ask a Question / Re: Help a begginer to create a special behavior
« on: February 27, 2014, 08:20:33 am »
Sorry. As I said earlier, I don't know what else you could do to avoid lag.
All I can suggest is this article about actor performance: http://www.stencyl.com/help/viewArticle/51

Good luck and go on having fun with Stencyl,
IITH

3
Ask a Question / Re: Help a begginer to create a special behavior
« on: February 27, 2014, 04:28:32 am »
Glad the fix worked.

About the lag: I probably won't be able to help you with that (I'm also still learning with Stencyl - nowhere near performance optimization yet).
But if all you want to do is put bombs into their respective camps, what do you do with them once they're inside their camps? Do you keep the actors alive? If so, I could see lag happening there. I'd suggest to kill/recycle every actor that is put inside the right camp and then raising the pertaining score. For looks, you can simply show a picture (or an animation) of a bunch of bombs inside of the camp. If you already do that, I have no idea what else to do to save resources.

4
Ask a Question / Re: Help a begginer to create a special behavior
« on: February 26, 2014, 02:53:52 pm »
Hey trakeure,
basically what the two new attributes "New" and "Invincible" do is determine whether the actor can/should be destroyed.

["New" = true] is assigned to the actor every time he is created and whenever he leaves the safe region. It makes him behave like a fresh, "new" actor. The "if new -> set new to false" routine in my "always" event behaves similar to your "if not fading -> set fading to true" routine. Only when an actor is "new", i.e. his state for "New" is true, the 9 second countdown starts to play. And since "New" is set to false in the same routine, the countdown only plays once (until the player's state is altered).
["Invincible" = true] however is assigned when the actor reaches the safe region. Since the actor is killed only if "Invincible" is false, he shouldn't die while inside of the region.

When I tested the behavior with the Crash Course Kit, I simply tried waiting inside and outside of the region to see what happened. Inside the actor survived unlimited. Outside the actor vanished after exactly 9 seconds. That's what I expected when I wrote the "kill self" function.

In your case however, you have to be careful to whom and where you assign the attribute "Invincible". From your code bits I don't see which actor you want to keep alive. The bomb or the explosion?
On a related note, I have to say, I don't really understand why you would need two separate actors. Seeing as how you make your first actor create the second one upon being killed off, wouldn't one actor with different animations be enough (one bomb-animation and one explosion-animation)?

My suggestion would be to assign the "Invincible" attribute (or however you want to call it) to your bomb actor and only kill it and create the explosion if "Invincible" is checked as false, i.e. he's not in the safe region.
I'd say the important part here is to make sure that you can create a condition where your actor can't be killed. When that is done you can still go on and change the areas where that is the case.

I hope this helps to clarify what I wanted to use these two attributes for.


P.S.: Concerning your newest code bits:
In the last part, when you disable "Die After Time", what code is in that behavior "Die After Time"? Is it the "always" loop containing the 4 second countdown? If so, that is where the problem might lie:
Once you start that loop, it is guaranteed that the actor is killed - there is no "if" condition. Even if you enter the region during the 4 second interval, the "disable" function only prevents the "Die After Time" behavior in further updates. The ones that were already started will be executed to the end. That's why I used "Invincible" as an attribute. This way, I could tell the game inside of the time loop that I didn't want to kill the actor if he was inside of the region.

Good luck with your game!


EDIT: I just had a lovely little moment of "eureka": To allow for multiple safe-havens, you simply have to create multiple regions in the "create" function. After every single one of them you then have to declare them as individual attributes (type: region). This way, you can later on check for the actor entering/exiting multiple regions, instead of just the "Last Created Region".
I modified my screenshot accordingly.

5
Ask a Question / Re: Help a begginer to create a special behavior
« on: February 26, 2014, 12:33:37 pm »
I hope I understood your problem correctly - if so I have a solution.

I've attached a screenshot of all events but let me explain it in a little more detail:
a) I created two new boolean attributes, New and Invincible.
b) In the create function I set New to true and Invincible to false. I also created a region (Scene -> Regions; for this example I used the whole right half of the screen).
c) In the update function I checked for the state of New. If true, it was set to false and a timer started (here I followed your example of 9 seconds). Inside the time loop I also checked for Invincible. If false, the actor was subsequently killed.
d) Now, here is where the region comes to use: I created two additional events that checked for how the actor interacted with the region (Add Event -> Actors -> Enters or Leaves a Region). When he entered, Invincible was set to true. That means, he couldn't die while in the region. Afterwards, when he left the region, Invincible was set to false (so he could die again) and New was set to true (so the timer could start anew).

When I tested the behavior inside of the Crash Course Kit, it worked exactly like expected.
This solution only checks for the last created region though, so you can only use one safe-haven at a time. I suppose you could also "define" several regions by checking whether the actor's x/y values are inside the x/y areas you want them to be - though that might lead to clumsier code.

Let me know if that solved your mishap - or whether you wanted to know something completely different ;)

Cheers,
IITH

6
Thanks. That has to be good enough of an explanation for me.
I'd hoped that there were some other mechanics working in the background that I simply had missed. I don't know how I feel about having to work/code against stencyl's seemingly random nature at some points. But whatcha gonna do?

Anyhow, thanks again - I guess I'll mark this one solved.

Cheers,
IITH

7
@ rright0102:
I already checked my groups in the settings (enemies collide with bullets and vice versa) and in the actor types (enemy ships are enemies, bullets are bullets). What's more, most of the time everything works just fine. If there were a problem with the groups, wouldn't there be no collision detected at all?
There has to be something that treats the collision between bullet and enemy ship differently if certain conditions are met - and I'd love to know what this something and the conditions are.

@ supadave810:
Yep, sounds like what I'm experiencing.
Did you try my 'fix' already? I would love to know if it worked for just me or whether it legitimately corrects the cause for the wrong collision detection.
For clarity I've added the events of my bullet actor.

8
I already posted a somewhat more detailed comment containing some unrelated info and questions over at the crash course (http://www.stencyl.com/help/viewArticle/182/) but this one question is especially dear to me:

Why is it that sometimes enemy ships don't realize they have been hit by a bullet?

I already 'fixed' this issue by killing off the bullets mere 0.1 seconds after they hit their mark (instead of instantly, like proposed by the tutorial).
But what almost drives me mad is the fact that for every enemy ship that didn't recognize a collision there were a few that did just that perfectly. I would understand if nothing worked. Or everything. But why are there inconsistencies between multiple members of the same group that are treated in exactly the same ways?

If needed, I'll post relevant screenshots of every event involved in an answer but I really hope that somebody might be able to explain this problem on a more universal level to me.

Thanks in advance and cheers,
IITH

Pages: 1