HIDE MOUSE : SYNC ON : SYNC RATE 60 : SET DISPLAY MODE 800,600,32
SET IMAGE COLORKEY 0,255,0
LOAD IMAGE "TDS-UpperHalfPistolV2.bmp",1
LOAD IMAGE "Cursor Test TDS.PNG",2
LOAD IMAGE "TDS-GunshotPistol.bmp",3
LOAD IMAGE "TDS-LowerHalfv3.bmp",4
PLAYERX AS INTEGER
PLAYERY AS INTEGER
PLAYERX=350
PLAYERY=250
CURSORX AS INTEGER
CURSORY AS INTEGER
TIME AS INTEGER
TIME=0
BULLETS AS INTEGER
BULLETS=10
RELOAD AS INTEGER
RELOAD=0
WEAPONSET AS INTEGER
WEAPONSET=0
TIME AS INTEGER
TIME=0
CREATE ANIMATED SPRITE 4,"TDS-LowerHalfv3.bmp",12,1,4
DO
CLS
SPRITE 5,100,100,1
DEC TIME,1
IF TIME<0 THEN TIME=0
IF TIME=5 AND SPRITE EXIST (3) THEN DELETE SPRITE 3
IF BULLETS=0 THEN INC RELOAD,1
BULLETS#=BULLETS
PRINT BULLETS#
IF BULLETS<1 THEN PRINT "RELOADING..."
CURSORX=MOUSEX()
CURSORY=MOUSEY()
SPRITE 2,CURSORX,CURSORY,2
SPRITE 1,PLAYERX,PLAYERY,1
SPRITE 4, PLAYERX,PLAYERY,4
SET SPRITE PRIORITY 2,2
SET SPRITE PRIORITY 1,1
SET SPRITE ALPHA 2,150
OFFSET SPRITE 4,10,21
OFFSET SPRITE 2,12,12
OFFSET SPRITE 1,20,10
[B]<So that this code is easier to understand, I've removed all of the player's movement code. I'll sum it up: you hit a key, player moves in that direction, the leg's animation plays.>[/b]
ROTATE SPRITE 1,ATANFULL(CURSORX-PLAYERX,CURSORY-PLAYERY)*-1
`Shooting
IF MOUSECLICK()=0 THEN WEAPONSET=0
IF MOUSECLICK()=1 THEN GOSUB PLAYERSHOOT
IF RELOAD=75
BULLETS=10
RELOAD=0
ENDIF
SYNC
LOOP
PLAYERSHOOT:
IF WEAPONSET=1 THEN RETURN
IF RELOAD>0 THEN RETURN
IF BULLETS=0 THEN RETURN
SPRITE 3,PLAYERX,PLAYERY,3
ROTATE SPRITE 3,ATANFULL(CURSORX-PLAYERX,CURSORY-PLAYERY)*-1
DEC BULLETS,1
TIME=10
WEAPONSET=1
IF SPRITE EXIST (3) AND SPRITE HIT (3,5) THEN PRINT "HIT"
RETURN
I do realized that the code is quite unorganized, and I'm slightly embarrassed by this. I'm testing out the shooting collision before I add any enemies or background (zombie game, btw.
). For some odd reason, the collision is screwing up. Like, really badly. Here's some pics to see what it's doing.
I have no idea what's going on. Help please?