dop2000's Forum Posts

  • I simply change c3p extension to zip.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I would use MoveTo behavior.

    Is in touch: Fish MoveTo position (Touch.x, Touch.y)

  • Here is how we do it in our game. We have a bunch of variables containing tile IDs for different surfaces. Note that each list starts and ends with a comma:

  • You can also add a variable prefix and then you won't need separate events for each language.

    If English set prefix to "en."

    If French set prefix to "fr."

    If Spanish leave it empty ""

    Then set texts to Dictionary.Get(prefix & "keyname")

    And don't update texts on every tick! This is really bad for the performance. Update them in changelanguage function.

  • Ok, I see in your screenshots that you are not picking child animator sprite. You need to add "BushMohHitbox pick children BushMohSprite" to all relevant events.

    Another option is to add these two objects to hierarchy a container. Then BushMohSprite will be created automatically for every hitbox (you don't need to spawn it), but you can still add it as a child. And it will be picked automatically in all events.

  • Why do you need to close the window after each test?

    A preview running in the background consumes system resources, plays sounds, etc. Also, many people don’t like keeping multiple windows open. I often close the preview automatically without thinking, and the next time have to detach the debugger, resize, and rearrange the windows again - which is really annoying. Please make it remember the last state!

  • What do you mean by glitch? Moving in wrong direction? Moving at wrong speed? Not moving at all? Playing wrong animation? Not playing any animation? You need to explain the issue in detail if you want people to help you!

  • My advice still stands - never use "trigger once" with multiple instances. Don't use "Wait" action in events that run on every tick. These are very common mistakes.

    What exactly is the problem now?

  • Yeah, it looks better. Although this event is still wrong:

    It will run on every tick while the conditions are true, and will create lots of delayed threads - because of "Wait 0.5s" action. So even if another event starts the "Attack" timer and set Attacking to true, those delayed threads will reset Attacking variable back to false for half a second.

    Avoid using Wait action in non-triggered conditions.

  • Remove "trigger once" from all events and never ever use it inside of triggers, loops, and especially with objects that have multiple instances! It's the cause of all your bugs.

    Instead of "trigger once" use additional conditions, or Timer behavior. For example, in the last event on your first screenshot you can add another condition: Tween "Idle" is not playing.

    Timer is a very useful behavior for such games. For example:

    Enemy has LineOfSight to Player 
    Enemy timer "attack" is not running : Enemy start timer "attack" for 1 second
    
    Enemy On timer "attack" : Enemy spawn a bullet
    

    This is a proper alternative to "trigger once" and "wait 1 second" (which won't work correctly for multiple instances).

  • Can you make a small demo or post a screenshot of the event sheet? Your project is 27MB in size and requires addons which I don't want to install.

  • Usually mechanics like this are done with instance variables and timers. Say, the enemy may have State and Direction instance variables.

    When it sees the player - set State to "attack", stop Bullet etc.

    When the player is no longer in LOS - set State to "patrolling". Depending on the Direction variable set mirrored/not mirrored, re-enable bullet.

    On collision with walls - change Direction value, start a timer to resume movement.

    And don't use "Wait" action, because you can't control it. If the player appears in enemy's LOS during the 2s delay, you won't be able to cancel waiting actions. So always use the Timer behavior to schedule events.

  • "System compare two values" or "System evaluate expression" doesn't pick object instances! So if you have multiple enemies, it will only evaluate the distance to the first enemy instance. You need to use LineOfSight behavior instead.

    For each Wizard
    .. Wizard has LineOfSight to Player : fire at player
    .. Else : continue patrolling
    

    You can use "System pick by evaluate" condition to pick by distance, but the LOS behavior is a better choice.

  • You can make a snapshot (System action). Then load this snapshot into a sprite. Then paste the sprite onto a canvas.

    I don't know why DrawingCanvas doesn't support loading images directly, so that's the only way.

  • Use the Date plugin:

    construct.net/en/make-games/manuals/construct-3/plugin-reference/date

    Save the progress in Local Storage, or simply with System Save/Load actions.