dop2000's Forum Posts

  • You do not have permission to view this post

  • To pick a random value from the array, use this expression:

    Array.At(int(random(Array.width)))

  • When you use "Enemy has LOS to player" condition, this picks all enemy instances that have LOS. For example, if you have 10 enemies, this event can pick 2 of them. Everything you do inside this event, will only apply to those 2 picked instances. So you can tell them to chase the player, using Pathfinding behavior for example.

    You can add another (inverted) event "Enemy does NOT have LOS to player", this event will pick the remaining 8 enemy instances. You can stop their movement, or something like that.

    It's a good idea to define an instance variable on the enemy, for example, State. For chasing enemies set State="chasing", for other set State="patrolling", this will give you more control and allow you to distinguish them in other events. So your code can be something like this:

    Enemy has LOS to player
    Enemy State="patrolling"
    	Enemy set State="chasing"
    	Enemy find path to player
    
    Enemy on path found 
    	Enemy move alone path
    
    Enemy does NOT have LOS to player
    Enemy State="chasing"
    	Enemy set State="patrolling"
    	Enemy Pathfinding Stop
    
    
  • You need to also restart layout. However, if you have any global objects (like arrays, dictionaries etc.), they will not be reset. Also, static local variables will not be reset. You'll have to clear/reset them one by one with events.

  • You can simply use Pin behavior to attach all parts to the main plane sprite.

    But, if you are using Physics, pin will not work correctly. You can try joints, or enable Physics only for the main plane sprite, and not for its parts. This way you will still be able to pin them to the plane.

    Container is used to "logically" connect a group of objects. The plane and all its parts can be in the same container, but you'll still need to pin them together.

  • I think you need to use a family. Instead of having two almost identical blocks of code for two objects, it's much better to combine them into a family.

    scirra.com/manual/142/families

    scirra.com/tutorials/535/how-to-upgrade-an-object-to-a-family

  • You do not have permission to view this post

  • Create a new sprite Camera with ScrollTo behavior, remove this behavior from the player.

    On every tick set Camera position to

    X: clamp(Player.X, Rectangle.BBoxLeft+ViewportWidth("Platfomer")/2, Rectangle.BBoxRight-ViewportWidth("Platfomer")/2)

    Y: clamp(Player.Y, Rectangle.BBoxTop+ViewportHeight("Platfomer")/2, Rectangle.BBoxBottom-ViewportHeight("Platfomer")/2)

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I don't know why you need my help there. 7Soul has given you a perfect explanation.

  • Please read this post:

    construct.net/en/forum/construct-3/how-do-i-8/best-help-tips-forum-139528

    We can't help you without seeing your project file or a screenshot of your code.

  • You can do this with NWjs, put all the save data into a string and write it to file.

  • This is probably because you have a huge sprite font and displaying it at 6% scale and -10.5 spacing. When I set spacing to 0, this doesn't happen.

    Try to reduce the size of sprite font image, so you won't have to use negative spacing.

  • To set the target in front of the player you can modify your code like this:

    Target set position to Player
    	Target move at angle
    		Angle: Player.8Direction.MovingAngle
    		Distance: (Сircle.width/2)
    

    Or you can simply pin the target, if you don't need to auto-aim it at enemies.

  • What do you mean by follow? Follow behind the player, or above the player? Is this a top-down view game? Which behavior are you using for player movement?

    If you set the circle to player's position, or pin it to the player, then of course your code will not work, because there is no angle between these two sprites.

  • That's odd, it works fine for me: