by Epharius » 08 Mar 2018, 15:04
Oui, ça ne m'étonnerait pas que ce soit le timer. Je vous mets tout ce que je fais dans tout Geometry Dash concernant le timer (ça a surement déjà été vu mais je vous le mets quand même
) :
Au début du programme :
- Code: Select all
xor a
ld (mpTmr2Counter+3),a
ld (mpTmr2Load+3),a
ld hl,$000000
ld (mpTmr2Counter),hl
ld (mpTmr2Load),hl
pop hl
ld a,0Eh
bit FLG_sphpAvlble, (iy+asm_flag2) ; dans les anciennes versions il n'était pas possible de choisir sa vitesse, on met donc celle par défaut (0Eh), sinon on met celle qui est indiquée dans l'AppVar
jr z,INIT_oldVersionWhithoutSpeed
inc hl
ld a,(hl)
INIT_oldVersionWhithoutSpeed:
ld (mpTmr2Counter+2),a
ld (mpTmr2Load+2),a
ld a,(mpTmrCtrl+1)
and %11111011 ; count down
ld (mpTmrCtrl+1),a
ld a,(mpTmrCtrl)
res 4, a ; using CPU clock
set 5, a ; generate interrupts when it reaches 0
set 3, a ; enable timer
ld (mpTmrCtrl),a
Dans la boucle principale :
- Code: Select all
; --------------------------------
ld hl,$F50000
ld (hl),2
; waiting for the next frame
waitFrame:
ld a,(mpTmrIntStatus)
bit 5, a
jr z,waitFrame
ld a,%00111000
ld (mpTmrIntStatus),a
Si vous voulez plus d'informations demandez-moi
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au
topic du projet ! Vous pouvez le télécharger
ici.
Unis par la flèche sacrée de cupidon