oosyrag's Forum Posts

  • Hmm... you can save your project in a project folder instead of a capx, then you can access all your sprites and animation frames directly from the folder for editing in another program. They won't be in a sprite sheet though.

  • There are a few ways to do this, depending on your situation.

    Do you require pathfinding, or are they free to run straight away from you?

    I'm assuming you already have a system in place to have the baddies run towards you. How are you doing this?

    Try having invisible "flee target" spots around the level. When they need to flee, pathfind to the one closest to them and farthest from the player. Or something along those lines. You'll probably need to add some conditions to ensure they don't flee towards a spot that the player is already along the path to.

    You can use another invisible "avoid zone" around the player for that. When your baddie picks a spot to flee, draw a line between that spot and the baddie to see if it collides with the avoid zone. If it does, that means the player is in the way and it should probably go somewhere else.

    Along the lines of the "avoid zone", you could probably update it as a solid in terms of pathfinding every once in a while, then the baddie using pathfinding definitely won't go there.

  • You are looking in the right direction, effects were definitely used for that game.

    You'll need to experiment a bit on your own regarding layering effects and sprites to get the effect you want.

    Assuming what you mean by a wave as in having the effect spread from a point rather than the entire screen, remember you can use effects on individual layers or objects as well. If you also use blending modes, you should be able to get the overall effect you are looking for. (Use the wave effect on a sprite with blending, then increase the sprite size to grow the wave.)

    https://www.scirra.com/manual/146/effects

  • https://www.scirra.com/manual/126/system-expressions

    [quote:hfzhshuc]angle(x1, y1, x2, y2)

    Calculate angle between two points

  • Firstly, this is a very important read, specifically in regards to picking: https://www.scirra.com/manual/75/how-events-work

    For your specific question, here is one method - I would use UID:

    Add an instance variable to the SpawnedObject "SpawnedFrom". When you spawn the object, also set the variable to SpawnerObject.UID. Now every SpawnedObject has a reference to which SpawnerObject it came from.

    On clicked SpawnedObject

    Pick SpawnerObject by Unique ID SpawnedObject.SpawnedFrom - Destroy SpawnerObject

    Manual entry for UID - https://www.scirra.com/manual/130/common-features

  • Export with NW.js

    https://www.scirra.com/manual/162/nwjs

  • You should be able to find all the information you need here: https://www.scirra.com/tutorials/73/sup ... reen-sizes

  • Sounds like a picking issue. Try adding the range variable to Bullet - Range. When you spawn bullet from tower, set Bullet.Range to Tower.Range

    If Bullet Distance Travelled>Bullet.Range, Destroy Bullet.

  • Ok so you want a timer with fixed leading 0s if necessary and with significant figures up to centiseconds (1/100 of a second).

    The timer gives the time in seconds in decimal format, with more sig figs than you need. So you'll need to round to the nearest centisecond - round(100*Timer). Then use the text object's APPEND action to add each digit you need, in addition to modulo which you seem to already know how to use.

    Start with setting a variable with the total current time in centiseconds

    Set text to (how many 10 minutes do I have? 10 minutes = 60,000 centiseconds, can be 0), subtract that from your variable

    Append text (how many minutes are left? 1 minute = 6,000 centiseconds), subtract that from variable

    Append ":"

    Append (10 seconds=1,000 centiseconds), subtract from variable

    Append (1 second = 100 centiseconds), subtract...

    Append ":"

    Append (10 centiseconds), subtract..

    Append (whatever is left)

    Hmm made sense when I wrote it, but now I look back and it might be kinda confusing. I can put together a capx later if you have trouble.

    Edit: Looks like I didn't need modulo after all. Or maybe it will look cleaner if it is used? Or something... https://www.dropbox.com/s/w8ni4mmfom94b ... .capx?dl=0

  • So... marching ants!

    I don't have an exact answer or time to work on this now... but if I were to try this, I think I would start with a lerp function for a straight line movement, and a qarp function for a curved line.

    Here's a reference -

  • Two options -

    Use containers if every enemy has a field of view rectangle. If they are in a container, there will always be a pair and they will always be linked in terms of picking and actions.

    https://www.scirra.com/manual/150/containers

    Second is to assign an instance variable with the UID of the object it is associated with. So if EnemyInstance spawns ViewRectangle, in the same event set ViewRectangle.InstanceVariable to EnemyInstance.UID.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • A loop will start and finish in the same tick. If you don't get another tick, you won't get an update.

    You can use a counter variable to increment your for loop to break up your loop into multiple frames

    Lets say you need For Loop from 0 to 20000.

    CounterVariable=0

    You can do For Loop from CounterVariable*1000 to (CounterVariable*1000+999)

    CounterVariable<20

    Add another event after to increment CounterVariable by 1 while CounterVariable<20 (this should NOT be in the loop).

    This will break your 20000 interations into 20 ticks - 0 to 999, 1000 to 1999, 2000 to 2999, ect.

    Change the amount of iterations you want to process per frame for different resolutions of progress.

  • To prevent cheating that system, you'll need a back end web server to host persistent data while the client is not running, and sync with client when they log in.

    Otherwise, you might be able to do something by parsing out system time, but a user can just change that on their own system.

  • The origin point of a sprite is by default in the middle of the sprite. 0,0 is the top left of your layout. Try setting the sprite position to 960, 540, or going into the image editor and moving the origin point to the top left.

    https://www.scirra.com/manual/63/image-points

  • An alternative method - this one uses a variable flag for your direction, in case your system doesn't use a held down key for controlling the snake, also does not rely on the angle of the sprite.