calminthenight's Forum Posts

  • You can use loops to append text at runtime.

    1drv.ms/u/s!AkmrWgxeuxlKhIg2aExJmccmrltTPw

  • If you want to use the collision polygon as a hitbox for your attacks, you are best to use a separate sprite with a uniform collision box for all your movement behaviours and pin the sprite you use for animations/hitbox to it.

  • I had a look at your project. The reason it is getting stuck is because you have the "is on floor" condition required to begin the attack. Because you have not used a uniform collision polygon for your character they are sometimes not registering as being on the floor. I set the collision polygon to be the same for all animations.

    I also got rid of your unnecessary mirroring events for that part but there are others you can get rid of. When you use mirroring, animations are automatically mirrored. You do not need to use separate actions.

    Here is the fixed project: 1drv.ms/u/s!AkmrWgxeuxlKhIg1mNHho3_3UOKL4w

  • You could certainly do it without using the booleans but I figured you had a reason for it.

  • I don't know what you mean by locking it down. You haven't added the trigger once condition to the event that starts the attack animation yet. It could be other events in your game causing the issue. Can't look at your project because it requires a plugin I don't have.

  • You are triggering setting the boolean to true whenever you press the K key. You have a condition that set's the Attack animation to start if the boolean is true meaning that it will keep starting every tick, and you are using on animation finished to reset the boolean to false, which is never triggered because there is constantly an attack animation playing.

    If you don't want to be able to spam the attack faster than the animation you need to add the condition to your K button event: Is attack animation playing (inverted).

    This will only fire the trigger if the attack animation is not already playing. Then you need to add a trigger once while true condition to the event where you set the attack animation to play.

    If you do want to be able to spam faster than the animation leave your trigger animation as it is. Add the trigger once condition to the next event, and then change the condition to reset the boolean to false from animation finished, to on key K released.

  • en.wikipedia.org/wiki/Round-off_error

    Normal part of computing

  • Create an instance variable on your player object called mouseX and use the events below.

    This will store the mouse X position at the time of the click and the jump will move towards that.

    If you want the jump to move towards the current mouse position at all times, remove the set variable action and then change the comparison values from player.mouseX to Mouse.X.

  • You could also use raycasting. Something along the lines of:

    is not overlapping object

    Repeat 359 times

    - cast ray at loopindex

    on ray intersected

    - add X&Y positions and distance to array

    - wait 0

    - call move function

    on move function

    - pick lowest distance in array & move to X&Y positions

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Search the forum for angry birds

  • lincolnsalles That is the basic method for doing volume control but the method that oosyrag posted also provides a performance improvement from not actually playing the sound if your SFX volume is muted.

    To visualise this method you would create a global boolean variable called 'mute_SFX' and a global variable called 'volume_SFX'.

    Event example:

    On Object Clicked - Do actions

    Sub Event: (inverted)is Boolean mute_SFX - Play sound at volume_SFX

  • Assuming you are using a movement behaviour like platformer you can do something like.

    Is player overlapping treadmill

    Sub event If player is not mirrored

    - Player-Platform set maximum speed to 600(or whatever)

    else -- Player-Platform set maximum speed to 300(or whatever)

  • PlatformInfo.CanvasCssWidth

    PlatformInfo.CanvasCssHeight

  • Have a look at this. There were issues with screen shake causing movement on your mouse position so to get around this I used absolutemouse positions instead.

    1drv.ms/u/s!AkmrWgxeuxlKhIgsXevC8baOBxWWLw

  • Turn off all of your other events for setting the angles of you lazer and projectileimpulsion.

    Add the events and variables in from my post.

    Replace the "turret" in event #3 in my events with "lazer" from yours. (event #13)

    Now edit the event Projectileimpulsion - set angle to AngleDiffViseurPerso and instead set angle to lazer.angle. (event #18)

    Now the angle of the turret and any spawned projectiles will be set towards the mouse position if the mouse is moving. If the mouse is not moving they will be set to the last angle.