better movement

This commit is contained in:
Samuel Walker 2024-08-30 15:54:02 -06:00
parent 0135a07875
commit 48e1ff0475

View File

@ -4,6 +4,7 @@
Line l; Line l;
s16 angle = 0; s16 angle = 0;
s16 x, y;
const u8 map[10][10] = {{1,1,1,1,1,1,1,1,1,1}, const u8 map[10][10] = {{1,1,1,1,1,1,1,1,1,1},
{1,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,1},
@ -141,6 +142,8 @@ void mapscan(){
void render(){ void render(){
l.pt1.x = x / 10;
l.pt1.y = y / 10;
//Clear the bitmap //Clear the bitmap
BMP_clear(); BMP_clear();
@ -165,13 +168,13 @@ void render(){
BMP_flip(1); BMP_flip(1);
//Increment the destination y coordinate //Increment the destination y coordinate
l.pt2.y = l.pt2.y + 2; //l.pt2.y = l.pt2.y + 2;
//Reset the destination y coordinate if it hits 160 //Reset the destination y coordinate if it hits 160
if (l.pt2.y == 160) //if (l.pt2.y == 160)
{ //{
l.pt2.y = 0; //l.pt2.y = 0;
} //}
SYS_doVBlankProcess(); SYS_doVBlankProcess();
@ -191,15 +194,15 @@ void update(){
s16 ind = (int)((float)angle/360.0f*1024.0f); s16 ind = (int)((float)angle/360.0f*1024.0f);
fix16 dy = sinFix16(ind); fix16 dy = sinFix16(ind);
fix16 dx = cosFix16(ind); fix16 dx = cosFix16(ind);
l.pt1.y += fix16ToInt(fix16Mul(dy, FIX16(SPEED))); y += fix16ToInt(fix16Mul(dy, FIX16(SPEED)));
l.pt1.x += fix16ToInt(fix16Mul(dx, FIX16(SPEED))); x += fix16ToInt(fix16Mul(dx, FIX16(SPEED)));
} }
if(joy & BUTTON_DOWN) { if(joy & BUTTON_DOWN) {
s16 ind = (int)((float)angle/360.0f*1024.0f); s16 ind = (int)((float)angle/360.0f*1024.0f);
fix16 dy = sinFix16(ind); fix16 dy = sinFix16(ind);
fix16 dx = cosFix16(ind); fix16 dx = cosFix16(ind);
l.pt1.y -= fix16ToInt(fix16Mul(dy, FIX16(SPEED))); y -= fix16ToInt(fix16Mul(dy, FIX16(SPEED)));
l.pt1.x -= fix16ToInt(fix16Mul(dx, FIX16(SPEED))); x -= fix16ToInt(fix16Mul(dx, FIX16(SPEED)));
} }
} }
@ -211,6 +214,8 @@ void initVDP(){
int main() int main()
{ {
x = 150;
y = 150;
initVDP(); initVDP();
//Initialise the bitmap engine //Initialise the bitmap engine