mrtumbles's Forum Posts

  • "My question is, is this bad memory usage? Like, real bad. Where does this modification of the var live? Is it truly unloaded when leaving the layout and the loaded back again when returning?"

    No it's not bad memory usage, it's normal. When you leave a layout all instances are forgotten, and when you start a layout all instances will appear as they would on the start of the layout. Again, this is normal.

  • You sometimes need to wait longer than 33 minutes for a response. That you've waited this long means you probably need to rephrase your question - maybe I can help?

    As best I can work out, you are spawning multiple objects with the pathfinding behaviour and either;

    • the first object you are spawning does not conform to the pathfinding behaviour, and this is the issue you want help with.

    If this is the case, try using 'regenerate obstacle map', or have the pathfinding behaviour engaging after a brief delay.

    • you do not want the first object to conform to the pathfinding behaviour and instead want it to head straight to the goal, and this is the issue you want help with.

    If this is the case, I would use a different object with a bullet behaviour for the first object, to better distinguish it.

  • You need to specify in your event which tilemap needs to be engaged. Set your drag and drop behaviours to be disabled by default, and enable and disable the behaviour on-the-fly through events to ensure they only affect one object at a time. Your code should look something like this:

    On touch object

    | Pick all object

    >>>Disable object.DragAndDrop

    | Pick top

    >>>Enable object.DragAndDrop

    I've used 'Pick top' because it is predictable. When the user clicks on an area containing multiple objects, only the one that's visible in that area gets selected. You can use other criteria of course.

  • How about only scrolling when:

    ViewportLeft("MouseLayer") < Mouse.X < ViewportRight("MouseLayer")

    ViewportTop("MouseLayer") < Mouse.Y < ViewportBottom("MouseLayer")

    ?

    edit: Sorry, I've just re-read the full thread and realised this would probably be subject to the same issues. I don't know what to suggest

  • I'm not 100% clear if this is what you want - but you can change sampling from linear to point in the project settings - simple select your project in the Project Bar and find the sampling option in the Properties bar

  • You can either use two Compare Variable conditions, or you can use 'Is between values' (also found under 'System') and enter the global variable in the value box

  • I was assuming OP want something that wasn't easily reproduced and so-on, given there were prizes involved. Apologies.

  • You could write a hash function. The simplest example would be a function which writes a very long string of alphanumerics. Usually you'd build these from a much larger string, but in your case you could use random numbers and letters - even taking input from the game. Make sure they are selected in some arbitrary pattern - although one which is non-consecutive eg: 13Afg9P456GH would work, but 23Afg9P456GH would not. Everyone's used to copy-pasting large chunks of alphanumerics these days, so when it comes to length... how long is a (piece of) string?

    To help ensure each code should only be generated once, you might want to encode the date and time into the pattern. So long as you can verify that the string was written by your algorithm (you'll want to write an app to check this for you) you're golden.

  • You need to set your sampling to 'point' rather than 'linear'. Select your project folder in the Project bar, and find the 'Sampling' option, and select 'Point'

  • Use System > For each

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • https://www.scirra.com/tutorials/398/to ... ontrollers

    You can simply run two of these joysticks on one screen <img src="{SMILIES_PATH}/icon_e_smile.gif" alt=":)" title="Smile">

  • To detect range that way, I would compare the enemy's X and Y to the player's X and Y directly, rather than using distance. For example, this would detect any enemy within 16 horizontal and 64 vertical pixels from the player:

    If Enemy.X is between Player.X-16 and Player.X+16

    If Enemy.Y is between Player.X-64 and Player.Y+64

    To detect orientation (mirroring) simply compare the X position, like so:

    If Enemy.X > Player.X set Enemy mirrored

    If Enemy.X < Player.X set Enemy not mirrored

    And similarly to detect if the enemy should shoot up, only by comparing Y positions:

    If Enemy.Y > Player.Y then shoot up

    If Enemy.Y < Player.Y then shoot down

  • I found this a very helpful and complete tutorial on Bitwise - scroll down for the info on multiple terrain types <img src="{SMILIES_PATH}/icon_e_smile.gif" alt=":)" title="Smile">

    http://gamedevelopment.tutsplus.com/tut ... -cms-25673

  • Can't you just use 'within' and '45 degrees' instead?

    On impact simply compare the angle of bullet and target, eg:

    ( Bullet.Angle - Target.Angle ) is within 45 degrees of angle 180 = Front

    ( Bullet.Angle - Target.Angle ) is within 45 degrees of angle 270 = Left

    ( Bullet.Angle - Target.Angle ) is within 45 degrees of angle 90 = Right

    ( Bullet.Angle - Target.Angle ) is within 45 degrees of angle 0 = Rear

    You might need to switch your left/right on that, but something similar should work.

  • Just change 'on tap' to 'on touch start'!