Обнаружение столкновений на C ++ с использованием спрайтов и setObject

Я пытаюсь создать очень простой бесконечный бегущий геймер, и я застрял в обнаружении столкновений. Я программирую для эмулятора GBA, используя notepad ++. Код ниже является моей основной игрой цикла while. Спрайты — это плитки размером 4х4, а каждая плитка размером 8х8 пикселей. Ниже основного цикла находится код гравитации, действующий на спрайт. ‘setObject (0, …) — спрайт символов. setObject (1, …) — спрайт платформы. Спасибо за любую помощь заранее.

while (true)
{
const uint8_t currentKeys = REG_KEYINPUT;

if (frame % 4 == 0) //change player sprite every 4 frame
{

if (run != 14)      //when last sprite is reached reset to original values
{
run = run + 2; //change run to next sprite
}
else
{
run = 0;
frame = 0;
score ++; //adding one to score variable everytime loop is entered
}
}

SetObject(0,
ATTR0_SHAPE(2) | ATTR0_8BPP | ATTR0_REG | ATTR0_Y(80),  //calling from spritesheet Stickmen
ATTR1_SIZE(2) | ATTR1_X(108),
ATTR2_ID8(run));                                        //calling sprite

SetObject(1,
ATTR0_SHAPE(2) | ATTR0_8BPP | ATTR0_REG | ATTR0_Y(112),
ATTR1_SIZE(2) | ATTR1_X(108),
ATTR2_ID8(100));

if (currentKeys != prevKeys)
{
if ((currentKeys & KEY_UP) == 0)
{
jumpY = -6.0f;
}
}

frame += 1;
prevKeys = currentKeys;
//DrawScore();
Physics();
WaitVSync();
UpdateObjects();
}
return 0;
}

void Physics()
{
playerY = playerY + jumpY; // setting player to PlayersY + the jumpY value attained by user
jumpY = jumpY + gravity; // because jump is negative, adding gravity cause it to fall down the screen
SetObjectY(0, playerY);
}

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]