oosyrag's Forum Posts

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

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

    Calculate angle between two points

  • Try Construct 3

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

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

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

  • Update to the latest stable then.

  • All behaviors use dt. Wait uses seconds as a base, so it is framerate independent by nature. You generally do not want to use dt with the wait x seconds action.

    https://www.scirra.com/tutorials/67/del ... dependence

  • Well the point of mentioning Unity and Unreal is that they are accessible 3d engines that can handle 2d as well, whereas C2 is 2d only.

    Of course as times change new engines and languages will grow in popularity, but those two are relevant today and the near future in that if you are looking to get hired at a larger developer, knowledge of them will be more valuable than knowledge of C2.

    But then we are straying from the topic of the viability of using C2 in class, which I think is an excellent idea tool for beginning programming incidentally. I'd prefer C2 over Visual Basic (my first class) for sure.