Hello,
this source is complicated and return the result of collision of two sprite, but wrong .
This source is this :
ORG $B000 SPEED: EQU 4 > BEGIN: LD A,1 CALL $5F LD A,255 LD HL,$3800 LD BC,32 CALL $56 JR GAME LOOP: CALL $9F CP 28 JR Z,DES CP 29 JR Z,SIN CP 31 JR Z,GIU CP 30 JR Z,SU ; CP 27 JP Z,EXIT GAME: LD HL,OMINO LD DE,$1B00 LD BC,8 CALL $5C LD HL,6144 LD A,(P1) ADD 48 CALL $4D INC HL LD A,(POK) CALL $4D CALL CHECK CP 255 JR NZ,SKIP LD IX,OMINO LD (IX+3),14 HALT JR LOOP SKIP: LD IX,OMINO LD (IX+3),2 HALT JR LOOP SU: LD IX,OMINO LD A,(IX+0) SBC SPEED LD (IX+0),A JR GAME > GIU: LD IX,OMINO LD A,(IX+0) ADD SPEED LD (IX+0),A JR GAME DES: LD IX,OMINO LD A,(IX+1) ADD SPEED LD (IX+1),A JR GAME SIN: LD IX,OMINO LD A,(IX+1) SBC SPEED LD (IX+1),A JR GAME EXIT: LD A,0 JP $5F RET > CHECK: LD HL,0 LD (P1),HL ; LD IX,P1 ; LD IY,OMINO ; CALL GET INC IY CALL GET ; LD HL,POK LD A,"X" LD (HL),A ; LD HL,P1 LD A,(HL) CP 2 RET NZ ; LD HL,POK LD A,"O" LD (HL),A RET > GET: LD B,(IY+0) LD D,(IY+4) ; LD C,16 ; LD E,16 CALL COLLIS RET NC ; ok set 1 LD A,(IX+0) INC A LD (IX+0),A CCF RET ;B=Object1, C=size ;D=Object2, E=size ;OUT: Carry set if collis ; COLLIS: LD A,D SUB B JR C,ALTRO SUB C RET ALTRO: NEG SUB E RET P1: DB 0 P2: DB 0 POK: DB 0 OMINO: DB 100,80,1,2 DB 100,100,0,8
And see this link : Collision detection
But get four item : B=X, C=size and D=I, E=size and return OK but this game is *Not OK*
Can't help to resolved this problems ? It search this forum, but not found 2* parametrs . Y (J+16) ?!? oO
Entrar ou registrar-se para comentar