Z-DEPTH ? if you can, I will very happy

Previous topic - Next topic

equinox

Hi,
is an example of how a character goes behind a rock and is covered. As in games rpg?

Moru

Look at Mappyloader on my homepage, gamecorner.110mb.com. If you set a stone or a tree on layer 1, the player will be in front of the stone/tree when he is lower down, if he goes up he will be covered behind the stone/tree.

Or if you just want it a bit easier, if you want something to cover something else, draw the sprite you want on top, last.

eg:
Code (glbasic) Select
DRAWSPRITE player, 50, 50
DRAWSPRITE stone, 50, 50


For this you need to sort your objects on Y coordinate. Look for the example SORTARRAY in the help.

Schranz0r

#2
hehe

Use layers:

Code (glbasic) Select
// L = Layer ( 3 layers or something more :D )
Level[L][X][Y]

FOR L = 0 TO 2 // 3 layers
    FOR X = 0 TO 99 // 100 X-Tiles
        FOR Y = 0 TO 99 // 100 Y-Tiles

            SELECT L
                CASE 0 // behind the Player layer
                    DRAWSPRITE Level[L][X][Y], X*Tilesize, Y*Tilesize
                CASE 1 // Player and collision layer
                    DRAWSPRITE Level[L][X][Y], X*Tilesize, Y*Tilesize
                    CheckCollision()
                    Player() // Your player drawing and movement
                CASE 2 // the "coverlayer"
                    DRAWSPRITE Level[L][X][Y], X*Tilesize, Y*Tilesize
            ENDSELECT

        NEXT
    NEXT
NEXT


I can make a little example, if you want?
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Moru

Schranzor, if you use layers you can't stand in front of a stone, the stone will still cover the player. The example picture from the mappy loader below shows what I mean.

[attachment deleted by admin]

Kitty Hello

No!! You sort by the bottom line of a sprite :P

equinox

Quote from: Schranz0r on 2009-Feb-09
hehe

Use layers:

Code (glbasic) Select
// L = Layer ( 3 layers or something more :D )
Level[L][X][Y]

FOR L = 0 TO 2 // 3 layers
    FOR X = 0 TO 99 // 100 X-Tiles
        FOR Y = 0 TO 99 // 100 Y-Tiles

            SELECT L
                CASE 0 // behind the Player layer
                    DRAWSPRITE Level[L][X][Y], X*Tilesize, Y*Tilesize
                CASE 1 // Player and collision layer
                    DRAWSPRITE Level[L][X][Y], X*Tilesize, Y*Tilesize
                    CheckCollision()
                    Player() // Your player drawing and movement
                CASE 2 // the "coverlayer"
                    DRAWSPRITE Level[L][X][Y], X*Tilesize, Y*Tilesize
            ENDSELECT

        NEXT
    NEXT
NEXT


I can make a little example, if you want?

Yes,tnk1000. If yuo can,if you can, I will very happy!!!

equinox

#6
In yoUr exemple, I dont FIND guy.png.

Quote from: Moru on 2009-Feb-08
Look at Mappyloader on my homepage, gamecorner.110mb.com. If you set a stone or a tree on layer 1, the player will be in front of the stone/tree when he is lower down, if he goes up he will be covered behind the stone/tree.

Or if you just want it a bit easier, if you want something to cover something else, draw the sprite you want on top, last.

eg:
Code (glbasic) Select
DRAWSPRITE player, 50, 50
DRAWSPRITE stone, 50, 50


For this you need to sort your objects on Y coordinate. Look for the example SORTARRAY in the help.