Hi, I know there are lots of posts on using 2D tilesets but I just can't get this right. I want my background to move and not the player ...
I Have my tileset.
I use dbCreateAnimatedSprite()
then inside my loop I create a 2D array for my tiles and then display using a for loop.
My problem is that I can't seem to move my tiles as a whole. any help please?
Here is my code so far.
#include "library.h"
void DarkGDK(void)
{
dbSyncOn();
dbSyncRate(60);
dbDisableEscapeKey();
dbSetImageColorKey(255,255,255);
PLAYER player;
player.SetPosition(100,100);
dbLoadImage("tiles.png",2);
dbCreateAnimatedSprite(2,"tiles.png",4,2,2);
while ( LoopGDK() )
{
player.PlayerMovement();
int map[10][32] =
{
{1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3},
{3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3},
{3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
};
for (int y=0; y<10 ;++y)
for(int x=0;x<32; ++x)
{
dbSetSpriteFrame(2,map[y][x]);
dbPasteSprite(2,x*21,y*27);
if (dbUpKey()==1)
{
//Move tiles??
}
}
if(dbEscapeKey() == 1)
{
break;
}
dbSync();
}
for (int i = 1; i < 10; i ++)
{
dbDeleteImage (i);
dbDeleteSprite(i);
}
return;
}