Sol 3D pour jeux à la shadow fighter

Discussion forum for the French Hollywood community

Sol 3D pour jeux à la shadow fighter

Postby ArtBlink » Sat Mar 12, 2011 10:43 pm

Hello,

encore une source pour un sol 3D mappé ;-)
Code: Select all
@DISPLAY {mode="ask",width=640, height=480}
; Création d'une Brosse X=640 et Y=1
CreateBrush(1,640,1)
; Sélection de la Brosse
SelectBrush(1)
; Boucle pour réaliser les lignes rouges et bleu
; intercalé chacune de 16 pixel (16 vert clair + 16 vert foncé=32 d'ou le step 32)
For Local X=0 To 640 Step 32
   Line(X,0,X+16,0,$008800)
   Line(X+16,0,X+32,0,$00AA00)
Next
; Fin de la sélection de brosse
EndSelect
SetFontStyle(#EDGE, #BLACK, 1)
SetFillStyle(#FILLGRADIENT, #LINEAR, $002266, $00AAFF)

;On initialise la seul variable global du programme
XDeplacement=0
Function Sol3D()
   StartTimer(1)
   
   Flip
   Cls
   
   Local PositionLigneEnX=0
   Local ZoomLigneEnX=1.5
   
   Local Droite=IsKeyDown("RIGHT")
   Local Gauche=IsKeyDown("LEFT")

   If Droite=True Then XDeplacement=XDeplacement+2
   If Gauche=True Then XDeplacement=XDeplacement-2

   For Local Y=400 To 480
      PositionLigneEnX=PositionLigneEnX+(XDeplacement/10)
      ZoomLigneEnX=ZoomLigneEnX+0.1
; Ici, on peut aller récupérer chaque ligne d'une image et l'afficher en Sol 3D
; Il faut faire : DisplayBrushPart(1,point X de départ de la copie, point Y de départ de la copie,320+XDeplacement+PositionLigneEnX,Y,Taille de la partie à copier,1,{scaleX=ZoomLigneEnX,anchorx=0.5})
; la commande DisplayBrushPart utilisé comme ci dessus rend le même effet que de la texturisation ;-)

      DisplayBrush(1,320+XDeplacement+PositionLigneEnX,Y,{scaleX=ZoomLigneEnX,anchorx=0.5})
   Next
   Local Temps=GetTimer(1)
   Box(0,0,640,400)
   TextOut (220,20,"Sol 3D pour Beat Them All")
   TextOut (160,40," Touche Flèche droite pour aller à droite")
   TextOut (160,50," Touche Flèche Gauche pour aller à gauche")
   TextOut (0,0,Round((1/Temps)*1000))
   TextOut (30,0,"Image par seconde")
EndFunction
; Dans se programme, les variables disent tous ;-)
SetInterval(1,Sol3D,20)
BeginDoubleBuffer

Repeat
WaitEvent
Forever
ArtBlink
 
Posts: 427
Joined: Mon Nov 01, 2010 11:37 am
Location: Albert - France

Return to French forum

Who is online

Users browsing this forum: No registered users and 1 guest