'CODE BY HEY, I DID A THING. 'NOTE THAT THE WALLS ARE CURRENTLY JUST THE EDGES OF OF THE BACKGROUND WITH TWO SQUARES LAYING AGAINST THE WALL. 'ALSO NOTE THAT YOU CAN SEE THE 2D MAP LAYOUT BEHIND THE 3D OVERLAY. THIS HELPS YOU KNOW WHAT YOU ARE LOOKING AT. 'THIS SETS THE BACKGROUND WHICH HOLDS THE POSITION OF THE WALLS BG COPY 0,0,32,32 TO 0,0 'THIS ACTIVATES THE GAMEPAD CONTROLS GAMEPAD 1 'X AND Y IS THE CAMERA/PLAYER POSITION X=50 Y=50 'RX AND RY IS THE RAY POSITION THAT GETS CAST OUT. RY=50 RX=50 ' "A" IS THE X AXIS ANGLE OF THE RAY WHEN IT IS CAST. -10 IS LOOKING LEFT AND 10 IS LOOKING RIGHT. A=0 'YA IS THE Y AXIS ANGLE WHICH I HAVE SET AT LOOKING FORWARD OR UP AND DIES NOT CHANGE. YA=-1 'T IS THE RECORDED TIME FROM WHEN A RAY IS SENT OUT TO WHEN IT HITS SOMETHING. THIS DETERMINES HOW FAR AWAY SOMETHING LOOKS. T=0 DO 'THIS RESETS THE ANGLE OF THE RAY WHEN IT REACHES A DETERMINED POINT SO THAT YOU DONT SEE A 360 VEIW OF THE ROOM ALL AT ONCE. IF A>10 THEN A=-10 'THIS IS CAMERA MOVEMENT. THE REASON WHY THE VALUES ARE SO SMALL IS BECUASE I AM NOT USING WAIT VBL TO KEEP THE PROGRAM AT A CONSISTANT SPEED BECUASE IT WILL ALSO MAKE THE RAY CASTING TAKE REALY LONG IF LEFT(0) THEN ADD X,-0.002 IF RIGHT(0) THEN ADD X,0.002 IF DOWN(0) THEN ADD Y,0.002 IF UP(0) THEN ADD Y,-0.002 'THIS DETECTS IF A RAY HAS HIT A WALL OR NOT. IF SO THEN THE RAY RETURNS TO THE CAMERA AND IT SPAWNS 2 SQUARES ON THE SCREEN IN THE CORRECT PLACE TO LOOK LIKE THERE IS A WALL INFRONT OF YOU. IF CELL.C(RX/8,RY/8)=1 THEN SPRITE 20+A PAL 1 SPRITE 50+A PAL 1 SPRITE 20+A,75+A*8,60+T,2 SPRITE 50+A,75+A*8,60-T,2 RY=Y RX=X ADD A,1 T=60 'THIS MOVES THE RAY IF IT IS NOT CURRENTLY HITTING A WALL. I HAVE DIVIDED "A" BY 10 TO GET A NARROW BUT DETAILED CAMERA VEIW. ELSE ADD RY,YA ADD RX,A/10 'THIS WILL MESSURE THE TIME/DISTANCE FROM THE CAMERA TO THE WALL. IF T>0 THEN ADD T,-1 END IF LOOP #1:MAIN PALETTES 2F3F3F0000383400003C0C0000070B0F 003F2A15003F2A15003F2A15003F2A15 #2:MAIN CHARACTERS 00000000000000000000000000000000 0000000000000000B66DDBB66DDBB66D 0000000000000000FFFFFFFFFFFFFFFF 00000000000000000000000000000000 FFFFFFFFFFFFFFFF0000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 183C7EFF18181818183C7EFF18181818 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 007424272500005B007424272500005B 00581048580003A200581048580003A2 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 11495900005555291149590000555529 233A2B009454D454233A2B009454D454 #3:MAIN BG 00001410010001000100010001000100 01000100010001000100010001000100 01000100010001000100010001000400 04000400040004000400040001000100 04000400040001000100040004000400 04000100010004000400040004000400 04000400040004000400040004000100 01000400040004000400010001000400 04000400040004000400040004000400 04000400040001000100040004000400 04000100010004000400040004000400 04000400040004000400040004000400 04000400040004000400010001000400 04000400040004000400040004000400 04000400040004000400040004000400 04000100010004000400040004000400 04000400040004000400040004000400 04000400040004000400010001000400 04000400040004000400040004000400 04000400040004000400040004000400 04000100010004000400040004000400 04000400040004000400040004000400 04000400040004000400010001000400 04000400040004000400040004000400 04000400040004000400040004000400 04000100010004000400040004000400 04000400040004000400040004000400 04000400040004000400010001000400 04000400040004000400040004000400 04000400040004000400040004000400 04000100010004000400040004000400 04000400040004000400040004000400 04000400040004000400010001000400 04000400040004000400040004000400 04000400040004000400040004000400 04000100010004000400040004000400 04000400040004000400040004000400 04000400040004000400010001000100 01000100010001000100010001000100 01000100010001000100010001000100 01000100