dop2000's Forum Posts

  • Access to the file is denied

  • So what exactly is not working? Do you have an instance of Punch sprite on the layout?

    You can run the game in Debug Mode (Shift+F4) and check all objects.

  • I simply change c3p extension to zip.

  • 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.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • 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.