Forum

Catégorie : Programmes
Forum : Aide à la programmation
Vues : 955
Réponses : 4
Type : discussion
Etat : réponses autorisées

Aide pour plusieurs choses

toinou91 le 29/09/2012 à 12:50
Bonjour,

Je voudrais savoir la signification et comment y accéder à plusieurs "commandes" :
- FonctNAff
- dim(Liste6
- ø

Voila, c'est tout je crois, merci winkle.gif

Au passage, je n'ai pas compris comment on était censé écrire le code de Doodle Jump que voila, si on pouvait m'expliquer aussi :

Code


#define TI83
.nolist
#include "ion.inc"
.list
#include "Ionsim.z80" ;Ionsim sert ici à définir les fonctions telles que Putsprite (c'est moi qui l'a créé! winkle.gif )

dx = saferam1
dy = dx+1
px = saferam1+2
py = px+1
var = py+1
revar = var+1
score = var+2
gx = score+2
dir = gx+1
deadvar = dir+1
newplat = deadvar+1
varplat = newplat+1
decplat = varplat+1

maxvalue = decplat+1


#ifdef TI83P
.org progstart-2
.db $BB,$6D
#else
.org progstart
#endif
ret

jr nc,start_program
.db "Doodle Jump TI par Coco",0


start_program:
Defvar(decplat,10) ; variable qui va augmenter l'écart de 1 tout les xx plateformes
Defvar(varplat,5) ;écart entre els plateformes (variable)
Defvar(newplat,10) ; mise au même de newplat(constante)

Defvar(maxvalue,50) ;la valeur pour laquelle on se téléporte de côté

Defvar(dx,30)
Defvar(dy,2)
Defvar(py,15)
Defvar(px,30)
call putp
Defvar(gx,0)
Defvar(dir,1)
Defvar(var,1)
Defvar(deadvar,65)
ld hl,0
ld (score),hl

loop:
call putd
Flipbuf
call putd
ld a,(var) ;var vaut 0 : ne pas monter ni descendre
cp 0
jr z,noup
ld hl,dy ;montée, descente
ld a,(hl)
ld b,a
ld a,(gcrazy.gif
cp 0
jr nz,goup
ld a,b
inc a
jr updownok
noup:
Defvar(var,2)
jr noup_deux
goup:
ld a,b
dec a
ld hl,gx
dec (hl)
updownok:
ld hl,dy
ld (hl),a
cp 56 ;si 56 arreter
jp z,stop

;le (normalement) pixel test
ld a,(gcrazy.gif
cp 0
jr nz,noup_deux ;si le doodle va vers le haut, alors pas de pixel test
ld a,(dy)
add a,6
ld e,a
ld a,(dcrazy.gif
add a,4
call ionGetPixel
ld a,(hl)
or a
call nz,bounce
noup_deux:
ld hl,var
dec (hl)
Getkey
cp gk_clear
jp z,stop_immediat
cp gk_left
call z,moveleft
cp gk_right
call z,moveright

ld a,(dy) ;test si t'es mort
cp 55
call z,scroll_dead
ld a,(deadvar)
cp 0
jp z,stop
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;scrolling up;;;;;;;;;;;;;;
ld a,(dy)
cp 5
call z,scroll_one
ld a,(varplat)
cp 0
call z,platform_new

ld a,(decplat)
cp 0
call z, decplatecart

;;;;;pour la téléportation d'un coté à un autre
ld a,(maxvalue)
inc a
inc a
ld b,a
ld hl,dx
ld a,(hl)
cp -2
jr z,tpmax
cp b
jr z,tpzero

jp loop
tpzero:
ld a,0
ld (hl),a
jp loop

tpmax:
ld a,(maxvalue)
ld (hl),a
jp loop

decplatecart:
Defvar(decplat,10)
ld hl,newplat
inc (hl)
ret

bounce:
Defvar(gx,45)
ret

moveleft:
Defvar(dir,0)
ld hl,dx
dec (hl)
dec (hl)
ret

moveright:
Defvar(dir,1)
ld hl,dx
inc (hl)
inc (hl)
ret

stop:
ld de,(30*256)+20
ld hl,str_youaredead
ld (pencol),de
bcall(_vputs)
Waitkey
Clear
ld de,(1*256)+2
ld hl,str_score
ld (currow),de
bcall(_puts)
bcall(_newline)
ld hl,(score)
bcall(_disphl)
bcall(_newline)
ld hl, (highscore)
ld de, (score)
bcall(_cphlde)
jp p,disphigh
bcall(_newline)
ld hl,str_newhigh
bcall(_puts)
ld hl,(score)
ld (highscore),hl
jr wait


disphigh:
ld hl,str_high ;"High score:"
bcall(_puts)
bcall(_newline)
ld hl,(highscore)
bcall(_disphl)
wait:
Waitkey
stop_immediat:
ret

scroll_dead:
ld hl,grbuf+12 ;
ld de,grbuf ;
ld bc,756 ;
ldir ;
ld h,d ;
ld l,e ;
inc e ;
ld (hl),b ;
ld c,11 ;
ldir ;
ld hl,dy
dec (hl)
ld hl,deadvar
dec (hl)
ret ;

scroll_one:
ld hl,grbuf+(62*12) ;
ld de,grbuf+(63*12) ;
ld bc,756 ;
lddr ;
ld h,d ;
ld l,e ;
inc e ;
ld (hl),b ;
ld c,11 ;
lddr ;
ld hl,dy
inc (hl)
ld hl,varplat
dec (hl)
ld hl,(score)
inc hl
ld (score),hl
ret ;

platform_new:
Random(50)
ld hl,px
ld (hl),a
Defvar(py,0)
call putp
ld hl,newplat
ld a,(hl)
inc hl
ld (hl),a
ld hl,decplat
dec (hl)
ret

putp:
Putsprite(px,sp_platform,3)
ret
putd:
ld a,(dir)
cp 1
jr z,putdright
Putsprite(dx,sp_doodle_left,7)
ret
putdright:
Putsprite(dx,sp_doodle,7)
ret

sp_doodle:
.db %01111000
.db %10001110
.db %10010110
.db %10000100
.db %10000100
.db %11111100
.db %10010100

sp_doodle_left:
.db %00011110
.db %01110001
.db %01101001
.db %00100001
.db %00100001
.db %00111111
.db %00101001

sp_platform:
.db %01111110
.db %10000001
.db %01111110

str_youaredead:
.db "Perdu!",0
str_score:
.db "Votre score:",0
str_high:
.db " High score:",0
str_newhigh:
.db " Nouveau High!",0

highscore:
.dw 0


.end

______________________________________________

Merci winkle.gif
Samos le 29/09/2012 à 13:00
Pour le code du doodle, c'est de l'assembleur il te faut un éditeur assembleur pour ça puis de le passer sur la calculatrice via le cable.

FonctNaff se trouve dans: Var + > + 4
Il sert à désactiver les fonctions que tu trouve dans le Menu f( x )

dim( se trouve dans: 2nd + stats + 3
Il donne la taille d'une liste

liste6 se trouve en faisant: 2nd + 6

le zero barré, c'est theta: Alpha + 3
toinou91 le 29/09/2012 à 13:35
Ok mais fonctnaff veut dire on ou off ?
blg_flg le 29/09/2012 à 14:44
FnOff = FonctNAff ou FonctOff selon les modèles. FonctNaff = fonction non affichée. winkle.gif
linkakro le 29/09/2012 à 14:49
FonctNAff=FonctOff

Tu ne pourras pas compiler le programme assembleur que tu as cité car l'auteur n'a pas pensé à poster sa fonction putsprite.