Arcticus's Forum Posts

  • And I'm still stuck on the Z sorting thing

    I've found a way that SHOULD work in theory, but it's still not 100%

    Granted it could be something wrong with my code

  • Ok, after a bit of thinking about that cell type system, i realised my current sorting was only half the equation

    i was doing this:

    For each Layers ordered by Layers.Y + Layers.Value('ZHeightBottom')

    Which, in a cell based setup, does the first half of the equation, finding where the object is on the row. BUT if you only have this, it treats everything as though there's only ONE row. So i expanded on it and did this:

    For each Layers ordered by (Layers.Y + Layers.Value('ZHeightBottom')) + Layers.Value('ZHeightBottom')

    EDIT: Although come to think of it, that's essentially the same as the solution that David gave me earlier

    This now tells the game where on the 'row' it is, but then also which row it is on!

    Now it's working a lot better!! But i still have a few bugs, i'll upload a cap.

    http://www.mediafire.com/?zivnhzkykgm

    Try standing at the base of the tower and jumping, also try standing behind a big box and jumping

  • Yeah same

    ASHLEY PLEASE ADD THE SORTING THING!! yay!!!1

    Or at least try it out and see if it works before adding it, i really think it would be a good idea, i'm sure there's plenty of situations where this would be really handy, especially since people will want to use construct for making isometric games, and i believe this fixes one of the main problems for iso Z sorting in ONE event

  • First of all, thanks heaps for still trying to help

    It's a great idea too, actually kinda similar to what i had but alas, it's still not working

    Most likely because i'm not using a cell type system, i'm using Y coordinates and my Z height is another set of pixels, although i suppose the principle is the same.

    In any case, i really think that ordering by multiple criteria, similar to the way databases work, would be the answer

    Unless there's something i'm doing wrong

    wah

  • Happy birthday construct! a truly amazing product

    I think one of the best parts about construct (at least in beta) is that other people's ideas and suggestions can actually become part of the program should the devs deem it worthy!

    Another great thing is the quick response of the devs

    thanks guys

  • Yeah i need help on this too, if someone knows how to get isometric Z layering working properly when using height as well, i will LOVE you (platonically)

    I seriously think that making the 'for each ordered' able to sort throught multiple criteria is the answer but prove me wrong, i'm no expert

  • I realise my little 'for' loop accuracy thing doesn't actually increase accuracy, it does however lessen the jump of timedelta based custom movments at low fps

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I think i've suggested this before, but either nobody read it or i didn't make myself quite clear enough

    I feature i think would REALLY help and save tons of time in the animation editor would be an option in the import frames dialogue that creates a new angle X big every X frames imported.

    So say, i make a 3D rendered walk cycle sprite, i want it to have 8 directions so when i render the animation, i just render all 8 directions in the one big long animation, that way the hotspots are all in the right place when i import it.

    BUT the problem with doing it this way in construct is that i have to manually enter every angle for the animation, then import the big long animation with all the directions into the one angle, and cut each direction out and paste it into the proper angle it's supposed to be in.

    Sure it's not -too- much work for an 8 direction sprite, but for a 64 direction one (which unfortunately i like using) it's a nightmare.

    The whole process would become mind-numbingly simple if when importing my big long animation i enter something like, 'every X frames, create a new angle of X degrees'

    Then in one action, my giant 64 direction animation is all filled out with every direction's animation working properly AND it has all the hotspots in the right place!

    What a great idea!

  • It's not so difficult

    You got iso down? Can you show me? Also how do you fix the layering problem?

  • Yeah I looked at that to see how you did it a while ago, but i ended up using my own method (albeit quite similar)

    I kinda want to make the Z ordering using families, that way i don't have a huge list of events just dealing with overlapping. Although what you made there still is quite good

    The only drawback with using families is events such as, if Blue is overlapping Blue, i find, using any other picking events and/or action after that tend not to work so well

  • Yeah, i've got pretty much all the basic code down for my iso-ish engine, EXCEPT the one problem i'm having is proper Z sorting when using different height levels. If you're making an iso game where you cannot jump and there's only one flat play area, then the 'for each (ordered) by Y coordinate acsending - bring to front' works perfectly.

    But my main problem is sorting the Z orders of objects that are higher than others, if i could find i way to sort by TWO (or more) criteria so for example:

    For each terrain (ordered) by Terrain.Y THEN Terrian.Value('Height') - bring to front

    if that was possible i'm pretty sure ALL my laying problems would be solved in one event!

    Once that problem is solved, i'll be able to start working on concept and art and actually turning it into a game (Although I'm still having problems making physics objects move faster at the same ratio that timescaling slows down, but that's another topic )

    So yeah, I could give you some pointers, but i'm no expert either lol, you're probably up to about the same spot that i am

  • i'm pretty sure collisions update between frames

    so with your animations, you want to basically control when the animation goes to the next frame?

    I haven't worked much with animations on construct yet cause they seem kinda broken and the features i need aren't really in it (yet?), but would you not be able to say, always set animation frame to some variable, and when you want it to progress, just add one to the variable?

    I could have interpreted you wrong though

    Also i realise it's quite a roundabout way of doing things, a 'next frame' feature would be handy in some cases i expect

  • I don't know if this is any help, but if i'm ever in the situation where i need a little more accuracy in my movement engines, i make a little 'for' loop

    Make a global varible called like, 'MovementAccuracy'

    change the sampling to linear

    And then at the start of layout (or change initial value) set it to the amount of accuracy you want

    I usually set it to around 50, the higher it is, the more accurate you will get, although i'm not sure the cpu load it would have if you made it too high

    Then do something like this

    when right arrow is down

    --for "Move" from 0 to global('MovementAccuracy')

    == Set Player.X to Player.X + 200 * (timedelta / global('MovementAccuracy')

    (the -- indicates a subevent)

    (the == indicates an action)

    Basically, the 'logic' runs 50 times per tick (or however many you set your global to) as opposed to once per tick, but you still get to use timedelta and use all your cool motion blur and timescaling stuff!

    Apply that to your jumping code or moving code or whatever and it's pretty much pixel perfect

    I had an example running at 1 fps that only went one pixel out

    Or another method i suppose would be having variables like: "JumpStart" and "JumpMaxHeight" and make it so when the player jumps, the jumpstart records the Y value at 'ground level' and set jumpmaxheight to the jumpstart minus however high you want him to jump.

    Then if the difference between the player's Y and jumpstart goes beyond jumpmaxheight, manually set the distance and code in the falling. Although i suppose this method would be a little harder if you weren't using a custom movement, and for REALLY low frame rates it might still require the use of that 'For' loop i just mentioned

    I hope i made myself clear

  • I was doing something similar to that method, it didn't -exactly- work as intended, but i don't need any last name business, that was just an example to illustrate, what i need it for is that layering problem i have a thread about in the help forum

    It's quite the halting setback

  • Hey, this request relates to the problem i've been having with the Z layering with my pseudo Z axis bizzo.

    If there's already a way of doing this please ignore (and then tell me how to do it! )

    So like if it was a database you could sort by say, age THEN by last name.

    It would sort the people ordered by age and for each age they would be listed alphabetically.

    So is it possible to do the same thing with the 'for each (ordered)' event? Cause I'm sure that would completely fix my problem

    On a side note, what do commas do in the expressions? because adding a comma in the for each (ordered)'s expression thing then followed by some other critera doesn't come up as in incorrect expression, except it doesn't seem to change anything

    Anyways construct rocks!