Lou Bagel's Forum Posts

  • Did you check that the animation speed isn't set to 0?

    I didn't follow your link you posted previously but do you have a capx or screenshot of your events to share?

  • Anyone can help me?

    Did you try my suggestion above? I'm not sure why it wouldn't work...

  • I don't have time to cover every detail right now and not on my computer with Construct so I can provide a capx or anything but thought I would try to explain and you can ask questions on what you don't get.

    Lerp(pointA, pointB, position)

    So lerp will move something from pointA to pointB and the position tracks where it is at between pointA and point B. So the position is from 0 to 1, where 0 is equal to exactly point A and 1 is equal to pointB exactly.

    I have seen two methods implemented

    -every tick

    --set x to lerp(viewport.x, pointB, 0.02)

    So this will calculate the distance between where viewport is currently and point B and move it 2% of the distance. The distance is new every time since viewport.x is constantly changing. Therefore the movement will start out fast and slow down near the end. (maybe never reaching the target exactly because the position is never set to 1)

    The other way, lets say you are moving from 500 to 2000

    Global variable position = 0

    -every tick

    --set x to lerp(500, 2000, position)

    --add 1/60 to position (so maybe about a second, you may want to make this frame-rate independent)

    So this will be a smooth movement as you are moving the same distance every tick.

    So the second version I would to this:

    Global variables

    StartX

    StartY

    FinishX

    FinishY

    Position

    Group (start disabled)

    -every tick

    --set x to lerp(StartX, FinishX, position)

    --set y to lerp(StartY, FinishY, position)

    --add (how fast you want it to go) to Position

    --If Position >= 1

    ---Group Disabled & set Postion to 0

    Function Camera move

    --Set all the Global variables

    --enable Group

    Hope that is a good starting point for you!

  • I found 2/3 easter eggs

    I bet if I could see an over-view map I could find the third- I couldn't figure it out! That second one was very clever though! I knew there had to be something on that screen.

    Nice work! Congrats on being the first!

    I see you are missing the green egg. That is actually my favorite I will send you a map as requested when I get a chance because I'm not sure that will help you as much as you think!

  • That worked perfectly- thanks so much!

    Now I feel challenged to find an easter egg... Ill have to try again after work tonight

    Great! (to both)

    Hint: two of them require very detailed observation to surroundings. The other, a little creative thinking, but most likely luck in discovering it.

    Happy hunting!

  • I avoid Wait for anything but the simplest things. Timers give you 100% control over your timing.

    Thanks, makes sense. So easy to throw in a wait without thinking about it. Need to get out of that habit and get more familiar with timers.

    If you don't mind a follow up question: How do you organize your timers? (or more accurately name them)

    So lets say it takes a small amount of time for the main character to do certain actions (cast a spell, open a treasure box, prepare special attack, etc) but if hit by enemy that buildup is stopped. So if you had a timer tagged "fireballSpell" & "openChest" & "superPowerUp" etc. you would have to add a stop timer for each one of those tags in the event for the character getting hit, no? Or can you stop all timers for one instance? (of course that might lead to issues stopping all timers, not just relevant timers, for that instance)

    Or I was thinking have an instance variable, lets call it timerFunction. Then could do:

    On key/button pressed:

    -set timerFunction to "fireball" or "openChest" or whatever they are doing

    -start timer "mainCharacter" (always keep the tag the same)

    On timer "mainCharacter"

    -call function character.timerFunction

    On main character hit

    -stop "mainCharacter"

    Sorry I am using you to think my thoughts through but it seems as you are filled with wisdom

  • Are you sure you don't have more than one tile selected in the editor?

  • Ugg. My first instinct when I saw your code was to blame Wait, but as is, it does work, except of course if you destroy the Monster that is then later still referred to, as you painfully found out. So switch to using a Timer on Monster instead. Then if the Monster is later destroyed, the timer will be cancelled automatically. Sorry I didn't speak up sooner.

    Ahh. So in general it would be a good idea to replace any waits with timers when dealing with monsters and combat and such?

  • No worries!

    ~Sol

    Actually, it is still doing it but I think I figured out why.

    This is basically what I have

    On timer

    --animate

    -- Wait short time (0.3 seconds or so)

    -- Monster spawn bullet object

    -- Set bullet direction

    I actually thought this through while away from project and testing but I think this is why it is happening:

    If the monster is hit/damaged and destroyed between the timer going off and the spawning (so 0.3 seconds time window) there is no new bullet spawned. Only one monster is picked and it is destroyed so no monster is left picked to spawn a bullet. And since no bullet is spawned then setting the bullet direction will pick ALL of the bullets.

    So I was thinking of changing it to:

    -- Monster spawn bullet object

    -- Set instance variable (to the angle)

    On bullet created

    --Set direction to instance variable

    So even if monster is destroyed and all bullets are picked it will just set an instance variable that won't be used again.

    Will the On bullet created fire before the instance variable is set though? Should I put a miniscule wait in there? How small? 0.05 seconds?

    Or can anyone think of a better solution?

  • Why do you have the repeat 10 times? The for loop will run it for each so you are running it 10 times for each.

    This is how I was thinking.

    On start of layout

    -for each npc

    --start timer "idleAnimation" random seconds

    On timer "idleAnimation"

    -for each npc

    --Idle animation

    --restart timer

    The for each on the timer is due to if two timers go off at once they will be separated.

    Let me know if you have any more questions.

    ...and thanks for trying my project! And don't worry, no one has found any of the eggs yet

  • What doesn't work about using the mouse or touch event of clicking on object?

  • This is setting them all at the same time. Use a for each loop. Also could use the timer behavior.

  • Have you tried using an every tick event to move the viewport incrementally?

    lerp() is also recommended.

  • You can't technically spawn something in a different layout because only one layout is really active at a time.

    One way you could do it is have global variables. This would only be efficient if you are tracking a few.

    spawn1 = 0

    If something happens in this layout spawn1 = 1

    On start of layout & spawn1 = 1 THEN spawn

    There is also Global setting in the instance property:

    [quote:100s9zr3]Global

    By default, all instances are destroyed when the layout ends (e.g. when going to the next layout). If Global is Yes, none of the instances of this object type will be destroyed when switching layouts.

    Maybe you could spawn in this layout, set to be inactive and hidden, then have it be global to carry over to next layout, then activate it. I haven't used this though so not sure if it works that way

    There is also the persist behavior. Don't believe this would help if spawning an object in a different layout but would help if wanting an object to stay the same when coming back to a layout.

    https://www.scirra.com/manual/161/persist

    Hope some of that is helpful

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Hello,

    My first game was the Mario/Duck Hunt. But I think that was the only platform series that I have really enjoyed.

    To me I was obsessed with the original NES Zelda, and the Dragon Warrior/Dragon Quest series. I loved the epic fantasy theme, the open world, and the exploration elements. In those games there is a huge wide world that your character lives you have a heroic journey to undertake to save it. I could go on and on, but what about you??

    I also love the Zelda series and remember playing one of the Dragon Warriors for NES. Played RPGs as well such as the final fantasy series and some others (Lufia? don't remember the others as well).

    So I guess what I liked about them is the open-world type exploration. In both the Zelda games and most RPGs you can kind of go at your own pace—explore every nook and cranny looking for secrets and loot, or head straight to the next dungeon, boss, or quest. I usually chose the former first, explore everything, level up and/or find helpful items. But it also made it exciting when I chose to risk it and push on before I thought I was prepared enough.

    I also loved being able to see future secrets and getting exciting when getting the item required to get there. Zelda did this a ton - see a rock blocking a path early on. Later get a hammer/power bracelet and you can backtrack to unlock that secret.

    I have been thinking a lot lately about what makes a game fun. Now that I am getting a little better with pixel art and Construct I realized I haven't even touched on making the projects fun. So have actually been thinking about this lately.