From 0135a07875c91359abd5efa8bea6b2fa69195292 Mon Sep 17 00:00:00 2001 From: Samuel Walker Date: Fri, 30 Aug 2024 15:32:58 -0600 Subject: [PATCH] movement update --- src/main.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/main.c b/src/main.c index d5bfa46..2dcfb84 100644 --- a/src/main.c +++ b/src/main.c @@ -1,6 +1,6 @@ #include -#define SPEED 2 +#define SPEED 5 Line l; s16 angle = 0; @@ -21,11 +21,11 @@ int dist(int ax, int ay, int bx, int by){ } void castRay(s16 angle){ - + if(angle >= 360) angle = angle - 360; + if(angle < 0) angle = 360 + angle; u16 r,mx,my,mp,dof; fix16 rx,ry,ra,xo,yo; s16 ind = (int)((float)angle/360.0f*1024.0f); - fix16 dy = sinFix16(ind); fix16 dx = cosFix16(ind); fix16 tan = FIX16(0); @@ -149,7 +149,15 @@ void render(){ mapscan(); if(angle >= 360) angle = angle - 360; if(angle < 0) angle = 360 + angle; + castRay(angle-20); + BMP_drawLine(&l); + castRay(angle-10); + BMP_drawLine(&l); castRay(angle); + BMP_drawLine(&l); + castRay(angle+10); + BMP_drawLine(&l); + castRay(angle+20); BMP_drawLine(&l); BMP_showFPS(0); @@ -180,10 +188,18 @@ void update(){ angle += 1; } if(joy & BUTTON_UP) { - l.pt1.y -= SPEED; + s16 ind = (int)((float)angle/360.0f*1024.0f); + fix16 dy = sinFix16(ind); + fix16 dx = cosFix16(ind); + l.pt1.y += fix16ToInt(fix16Mul(dy, FIX16(SPEED))); + l.pt1.x += fix16ToInt(fix16Mul(dx, FIX16(SPEED))); } if(joy & BUTTON_DOWN) { - l.pt1.y += SPEED; + s16 ind = (int)((float)angle/360.0f*1024.0f); + fix16 dy = sinFix16(ind); + fix16 dx = cosFix16(ind); + l.pt1.y -= fix16ToInt(fix16Mul(dy, FIX16(SPEED))); + l.pt1.x -= fix16ToInt(fix16Mul(dx, FIX16(SPEED))); } }