oosyrag's Forum Posts

  • If the same assets are used by two consecutive layouts, they don't get unloaded and reloaded.

    If you don't want to use layouts to manage memory, don't use different layouts.

    For organizational purposes on a single layout, you can use event sheet includes and restart layout action with a variable to determine which sub game to load.

    On the other hand, if you don't understand how it works, you probably don't need to worry about it. It doesn't make sense to have assets that are not in use kept in memory. Also if you don't understand how it works, you definitely don't want to manage memory use yourself.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Are the choices always going to be yes and no?

  • You can write the binary data as a string by using the binarydata.getbase64 expression. You can put this string into an array if you wish. The array can the be saved and loaded as json as normal, and then you can load it into the binary data plugin again with the set from base64 expression.

    As the manual notes, this is significantly less efficient than using the ajax object to post binary data directly to a server directly.

  • Try setting a string variable to ajax.lastdata and see what it says in debug

  • Are you able to display (or view in debug) ajax.lastdata by itself if you write it to a variable or text object directly?

    Are your text object dimensions large enough to fit all the content you are attempting to display?

  • -> bulletobject: Set Bullet angle of motion to angle(bulletobject.X,bulletobject.Y,Sprite.X,Sprite.Y) degrees

  • This will be hard to diagnose without seeing your event sheet... Is your event to set the player to rotate towards the specified position in a common group of events for both peer and host? Can you confirm if the specified position instance variables are synced/set properly on the peer side?

  • It is a possibility to have multiple instances of a single array object, which you will then be able to pick by comparing instance variables, nth instance, or uid. This may not suitable for all applications though.

  • Things to check include making sure the cone object isn't synced and that you're picking conditions for the cone are working as intended.

  • Here's an example, there were a few things I missed like picking all enemies again after colliding with one of them (normally only the one that triggered the collision is picked. We want to pick all so that we can randomly pick a new target after that.

    I used the enemy's UID to store as a target for a bullet.

    dropbox.com/s/7n3u84okx4ifeej/homingbullets.c3p

  • If you want homing bullets, you'll need to set a target for it, and then set the bullet angle of motion towards that target every tick.

    You'll also want some additional instance variables, so that each bullet can "remember" what it's target was.

    Or projecting the trajectory of the target is also an option, but that can get even more messy.

  • After narrowing down a target by picking, you can use the action set angle of motion to angle(bullet.x,bullet.y,family.x,family.y), where bullet is the bullet's current location, and family is the x and y of the picked object. The angle() expression gives the angle between the two.

    You can also narrow down the targets by using the "Is on screen" condition before picking a random instance. Note the order is important, conditions filter in order. So if you used pick random instance, and it picked something off screen, and then had "is on screen" afterwards, you would end up with nothing picked.

  • I haven't tried it, but it may have to do with how the multiplayer object updates the position of synced objects. Have you tried just setting the cone's position to player.x/y every tick instead of using the pin behavior?

    Is having clientside objects that only exist for the peer even possible?

    Yes

  • If you have 4 separate sprite objects as "enemies", you would normally put them all into a "enemies" family, and then you can use the system - pick random instance to get a random one. That way you don't have to repeat your events for each enemy object.

  • Firstly you will need to keep track if any given bullet can bounce, or if it should destroy itself. You can do this with an instance variable on the bullet object. Lets call it bounce, and set it to 1 by default.

    On collision with target, add some sub events. You can compare instance variables. If bullet.bounce is 0, destroy bullet. If bullet.bounce is > 0, subtract 1 from bounce, pick a new target based on your conditions, and set bullet angle of motion to angle(bullet.x,bullet.y,target.x,target.y).