Ich bin neu in C++ und ich habe in einem kleinen Spielprogramm zu üben Kollision, die nichts tut und ich kann einfach nicht die Kollision richtig machenKollisionsnachweismethoden in C++
So in Variablen geladen ich Bilder verwenden
background = oslLoadImageFile("background.png", OSL_IN_RAM, OSL_PF_5551);
sprite = oslLoadImageFile("sprite.png", OSL_IN_RAM, OSL_PF_5551);
bush = oslLoadImageFile("bush.png", OSL_IN_RAM, OSL_PF_5551);
Zwar gibt es Variablen wie
sprite->x = 3;
if ((sprite->x + spritewidth > bush->x) && (sprite->x < bush->x + bushwidth) && (sprite->y + spriteheight > bush->y) && (sprite->y < bush->y + bushheight))
{
bushcol = 1;
}
else
{
bushcol = 0;
}
So gespeichert sind, wenn ich eine Taste drücken
if (osl_keys->held.down)
{
if (bushcol == 1)
{
sprite->y = bush->y + 38;
}
else
{
sprite->y += 3;
}
}
if (osl_keys->held.up)
{
if (bushcol == 1)
{
sprite->y = bush->y - 23;
}
else
{
sprite->y -= 3;
}
}
if (osl_keys->held.right)
{
if (bushcol == 1)
{
sprite->x = bush->x - 28;
}
else
{
sprite->x += 3;
}
}
if (osl_keys->held.left)
{
if (bushcol == 1)
{
sprite->x = bush->x + 28;
}
else
{
sprite->x -= 3;
}
}
Ich dachte an Dinge wie
sprite->y = bushheight - 24;
aber es tut
Irgendwelche Vorschläge arbeiten?
Was, genau, funktioniert nicht? Wollten Sie auch x und y im Ausdruck sprite-> y = busy-> x-3 mischen? – Naaff