[12 Dec 2009] Code for interest hollywood beginner

Contains all messages from the Hollywood mailing list between 01/2006 and 08/2012
Locked
ArtBlink
Posts: 484
Joined: Mon Nov 01, 2010 10:37 am
Location: Albert - France
Contact:

[12 Dec 2009] Code for interest hollywood beginner

Post by ArtBlink »

Note: This is an archived post that was originally sent to the Hollywood mailing list on Sat, 12 Dec 2009 17:06:45 -0000

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.*/ 
Locked