Hello,
I give to you this, it's sprite gestion with directionnel jump and an ersatz of horizontale scrolling... Good code
In French Salut les gens, voici un petit code pour faire un ti jeux (un début)pour les débutant comme moi, bon code. Attention, le code n'es pas du tout optimisé lol, c'est le premier code que j'ai sorti avec hollywood, c'est mon chewingcode, oui, c'est un peux mache. Pour les image, j'ai pas de lien, désolé mais regardé les coordonnées, vous verrer, c'est sympa.
Respect
Code: Select all
@VERSION 4,0
@SPRITE 1, "hero2.gif", { Width = 24, Height = 32, Frames = 5, Transparency = #WHITE}
@brush 1, "fond.png", { X=0 , Y=0 , Width = 32 , Height = 32}
@brush 2, "fond.png",{ x=33 , y=0 , width=32 , height=32}
@DISPLAY {mode="fullscreen"}
@display{width=640,height=480}
%displaycolor=$000000
/* Bonjour les copains voici l'essaie pour un scroll horizontale+sprite
Le problème : J'arrive pas à mélanger Sprite+Brush
Je vous file la source, reprenez se que vous voulez dedans*/
xcoor=320 /* Coordonné X pour sprite*/
ycoor=200 /* Coordonné Y pour sprite*/
visage=1 /* Image du sprite*/
valeur=0 /* Variable pour le saut qui créé l'effet accélération/décélération (pour incrémenter la valeur dans la commande WRAP)
C'est le tableau ou 1=brush1 et 2=brush2 , je créé un"écran virtuelle de 40*32 pixel*/
Map={1,2,2,2,1,2,2,2,1,2,1,2,2,2,2,1,1,1,1,1,1,2,2,2,1,2,2,2,1,2,2,2,1,1,1,2,1,2,2,2,1}
print ("CTRL+C=sortir - Fleche Gauche=A gauche - Fleche Droite=A Droite - Flece Haut=Sauter")
;Première fonction _ j'appuie, je bouge= la varible booléen Jump permet de définir si oui ou non le sprite est en saut
; Sgauche = saut vers la gauche , pendant le saut je peut aller à gauche, idem pour la droite
Function Player()
if iskeydown("LEFT")=true and jump=false then gauche()
if iskeydown("LEFT")=true and jump=true then Sgauche()
if iskeydown("RIGHT")=true and jump=false then droite()
if iskeydown("RIGHT")=true and jump=true then Sdroite()
if iskeydown("Up")=true and jump=false then saut()
If jump=true
; la commande wrap permet l'accélération/décélération du saut (faite le calcule, c'est tout bête)
ycoor=ycoor-wrap(valeur,1,2)
; c'est bizarre mais l'origine 0,0 se trouve en haut à gauche de l'écran
; Sous Amos, il se trouver en bas à gauche de l'écran, donc pour monter, on commence par une valeur négative
valeur=valeur-1
; ici j'ai mis 200, car c'est l'a que démarre la ligne des brush pour le scroll, mais on peut y mettre un test de collision
; sympa pour le petit jeux de plate dorme
if ycoor>=200
;pendant le saut, le hero change de visage
visage=2
;valeur à effacé si on met plus haut un test de collision
ycoor=200
;fin du saut, on arrete la fonction saut, donc, soit l'incrémentation ou la décrémentation de la coordonnée Y du sprite
jump=false
endif
endif
; comme j'ai copier 2 moteurs ensemble, scroll+war (2 fichiers)
; j'me suis pas embetter à optimiser le truc, c'est clair que ces lignes peuvent se trouver plus haut (avec les tests touche pour le sprite)
if iskeydown("left")=true then x1=x1+4
If iskeydown("Right")=true then x1=x1-4
For c=1 to 40
;je déplace mon scroll
Displaybrush(Map[c],(c*32-32)+x1,232)
next
; j'affiche my hero
displaysprite(1,xcoor,ycoor,visage)
endfunction
Function gauche()
visage=visage-1
if visage=0 then visage=4
xcoor=xcoor-4
; grace à cette commande, quand j'arrive à l'extrème droite de l'écran, le sprite apparait à gauche
; inutile avec le scroll, mais bon, c'est un essai
if xcoor<-20 then xcoor=640
EndFunction
Function droite()
visage=visage+1
if visage=5 then visage=1
xcoor=xcoor+4
; idem que la gauche, mais sur la droite
if xcoor>640 then xcoor=-20
Endfunction
Function saut()
Jump=true
valeur=10
visage=5
endfunction
function Sgauche()
xcoor=xcoor-4
if xcoor<-20 then xcoor=640
endfunction
function Sdroite()
xcoor=xcoor+4
if xcoor>640 then xcoor=-20
endfunction
;je mélange le tout, et hop
setinterval (1,Player,70)
repeat
waitevent
forever
/* Bon maintenant, abandonné définitivement les sprites pour faire du scroll. Utiliser le double buffer
Problème, je ne sais pas encore utilisé la commande displaybrush pour créé une animation... enfin je crois que j'ai trouver la combine. La suite au prochain numéro, se programme peut être largement optmiser (variable local+regroupement des test) et modifier, remplacer la commande Sprite par un displaybrush+ cls+flip+begindoublebuffer.*/