Début de jeu de palet

Programmation avancée de jeux en PureBasic
zorg
Messages : 35
Inscription : ven. 19/janv./2007 11:19
Localisation : France - Puy de Dôme
Contact :

Début de jeu de palet

Message par zorg »

Bonsoir à tous,

voici un début de code pour un jeu de palet.
Les collisions ne sont pas encore parfaites même si j'en ai déjà bien bavé.
Si ça peut vous amuser deux minutes..

Code : Tout sélectionner

EnableExplicit

Structure vecteur
  vx.f
  vy.f
EndStructure

Structure type_souris
  x.l
  y.l
  vit.vecteur
  minx.l
  maxx.l
  miny.l
  maxy.l
EndStructure

Structure type_raquette
  sprite.l
  x.l
  y.l
  memx.l
  memy.l
  vit.vecteur
  sensx.l
  sensy.l
  largeur.l
  hauteur.l
  dist.f
EndStructure

Structure type_palet
  sprite.l
  x.f
  y.f
  memx.f
  memy.f
  minx.l
  maxx.l
  miny.l
  maxy.l
  vit.vecteur
  sensx.l
  sensy.l
  largeur.l
  hauteur.l
  dist.f
  frottement.f
EndStructure

;**************************
;-Déclaration des variables
;**************************
;Divers
Define taille_ecran_x.l,taille_ecran_y.l, sprite_clear.l, xdata.l, ydata.l, couldata.l
;Souris
Define souris.type_souris
;Raquette
Define raquette.type_raquette
;Palet
Define palet.type_palet
;FPS
Define temps_ecoule.l,mesure_tps1.l,mesure_tps2.l, FPS$

;Variables globales
Global debugactif.l

;***********
;-Procédures
;***********
Procedure.f vecteur_norme(*v.vecteur)
  ProcedureReturn Sqr((*v\vx * *v\vx)+(*v\vy * *v\vy))
EndProcedure
Procedure vecteur_somme(*v1.vecteur, *v2.vecteur)
  *v1\vx=*v1\vx + *v2\vx
  *v1\vy=*v1\vy + *v2\vy
EndProcedure
Procedure vecteur_produit_reel(*v.vecteur, nombre.f)
  *v\vx=*v\vx * nombre
  *v\vy=*v\vy * nombre
EndProcedure
Procedure.f vecteur_produit_scalaire(*v1.vecteur, *v2.vecteur)

  ProcedureReturn (*v1\vx * *v2\vx) + (*v1\vy * *v2\vy)
EndProcedure
Procedure vecteur_copie(*v1.vecteur, *v2.vecteur)
  *v2\vx=*v1\vx
  *v2\vy=*v1\vy
EndProcedure
  
Procedure.l Signe(a.f)
	If a>0
		ProcedureReturn 1
	ElseIf a=0
		ProcedureReturn 0
	Else
		ProcedureReturn -1
	EndIf
EndProcedure
Procedure gestion_souris(*mouse.type_souris)
  Define relocate.l
  
  ExamineMouse()
  *mouse\x=MouseX()
  *mouse\y=MouseY()

  relocate=0
  If *mouse\x<*mouse\minx
    *mouse\x=*mouse\minx
    relocate=1
  ElseIf *mouse\x>*mouse\maxx
    *mouse\x=*mouse\maxx
    relocate=1
  EndIf

  If *mouse\y<*mouse\miny
    *mouse\y=*mouse\miny
    relocate=1
  ElseIf *mouse\y>*mouse\maxy
    *mouse\y=*mouse\maxy
    relocate=1
  EndIf

  If relocate
    MouseLocate(*mouse\x,*mouse\y)
  EndIf
EndProcedure
Procedure gestion_raquette(*raq.type_raquette,*mouse.type_souris)
  *raq\memx=*raq\x
  *raq\memy=*raq\y
  *raq\x=*mouse\x * *mouse\vit\vx
  *raq\y=*mouse\y * *mouse\vit\vy
  *raq\vit\vx=*raq\x-*raq\memx    ;Calcul de la vitesse de la raquette en x
  *raq\vit\vy=*raq\y-*raq\memy    ;.. et en y
  *raq\sensx=signe(*raq\vit\vx)
  *raq\sensy=signe(*raq\vit\vy)
  *raq\dist=vecteur_norme(*raq\vit)   ; Distance parcourue depuis la dernière image
EndProcedure
Procedure gestion_palet(*pal.type_palet)
  *pal\memx=*pal\x
  *pal\memy=*pal\y
  *pal\x=*pal\x+*pal\vit\vx
  *pal\y=*pal\y+*pal\vit\vy
  
  If *pal\x<0    ; Collisions avec les bords
    *pal\x=0
    *pal\vit\vx=-*pal\vit\vx
  ElseIf *pal\x>*pal\maxx
    *pal\x=*pal\maxx
    *pal\vit\vx=-*pal\vit\vx
  EndIf
  If *pal\y<0
    *pal\y=0
    *pal\vit\vy=-*pal\vit\vy
  ElseIf *pal\y>*pal\maxy
    *pal\y=*pal\maxy
    *pal\vit\vy=-*pal\vit\vy
  EndIf
  *pal\sensx=signe(*pal\vit\vx)
  *pal\sensy=signe(*pal\vit\vy)

  ;Mise à jour de la vitesse par rapport aux frottements
  vecteur_produit_reel(*pal\vit,*pal\frottement)
  
  ; Distance parcourue depuis la dernière image
  *pal\dist=vecteur_norme(*pal\vit)
EndProcedure
Procedure gestion_collision(*raq.type_raquette,*pal.type_palet)
  Define col_nbx.l, col_nby.l, col_nbtests.l
  Define  col_raq_offx.f, col_raq_offy.f, col_pal_offx.f, col_pal_offy.f
  Define col_i.l, col_j.l, col_pos_raq_x.l, col_pos_raq_y.l, col_pos_pal_x.l, col_pos_pal_y.l
  Define col_h.l, col_b.l, col_g.l, col_d.l, col_hg.l, col_hd.l, col_bg.l, col_bd.l
  Define pal_centrex.l, pal_centrey.l, pal_diagonale.f, col_testx.l, col_testy.l
  Define vcol.vecteur

  If *pal\dist>*raq\dist ;Le palet a plus bougé que la raquette depuis la dernière image
    col_nbx=Abs(Round(*pal\vit\vx,#PB_Round_Up))
    col_nby=Abs(Round(*pal\vit\vy,#PB_Round_Up))
  Else
    col_nbx=Abs(Round(*raq\vit\vx,#PB_Round_Up))
    col_nby=Abs(Round(*raq\vit\vy,#PB_Round_Up))
  EndIf
  If col_nbx<>0
    col_raq_offx=*raq\vit\vx/col_nbx
    col_pal_offx=*pal\vit\vx/col_nbx
  Else
    col_raq_offx=0
    col_pal_offx=0
  EndIf
  If col_nby<>0
    col_raq_offy=*raq\vit\vy/col_nby
    col_pal_offy=*pal\vit\vy/col_nby
  Else
    col_raq_offy=0
    col_pal_offy=0
  EndIf
  If Abs(col_nbx)>=Abs(col_nby)
    col_nbtests=Abs(col_nbx)
  Else
    col_nbtests=Abs(col_nby)
  EndIf

  For col_i=1 To col_nbtests
    col_pos_raq_x=*raq\memx+col_raq_offx*col_i
    col_pos_raq_y=*raq\memy+col_raq_offy*col_i
    col_pos_pal_x=*pal\memx+col_pal_offx*col_i
    col_pos_pal_y=*pal\memy+col_pal_offy*col_i
        
    ;Position du centre du palet
    pal_centrex=col_pos_pal_x+(*pal\largeur/2)
    pal_centrey=col_pos_pal_y+(*pal\hauteur/2)
    pal_diagonale=*pal\hauteur*0.3536 ;Rayon * cos45°
        
    ;Test collision palet sur raquette en 8 points du périmètre du palet
    ;Haut gauche
    col_testx=pal_centrex-pal_diagonale
    col_testy=pal_centrey-pal_diagonale
    col_hg=(col_testx>=col_pos_raq_x) And (col_testx<col_pos_raq_x+*raq\largeur) And (col_testy>col_pos_raq_y) And (col_testy<=col_pos_raq_y+*raq\hauteur)
    ;Haut
    col_testx=pal_centrex
    col_testy=col_pos_pal_y
    col_h=(col_testx>=col_pos_raq_x) And (col_testx<=col_pos_raq_x+*raq\largeur) And (col_testy>col_pos_raq_y) And (col_testy<=col_pos_raq_y+*raq\hauteur)
    ;Haut droite
    col_testx=pal_centrex+pal_diagonale
    col_testy=pal_centrey-pal_diagonale
    col_hd=(col_testx>col_pos_raq_x) And (col_testx<col_pos_raq_x+(*raq\largeur/2)) And (col_testy>col_pos_raq_y) And (col_testy<=col_pos_raq_y+*raq\hauteur)
    ;Droite
    col_testx=col_pos_pal_x+*pal\largeur
    col_testy=pal_centrey
    col_d=(col_testx>col_pos_raq_x) And (col_testx<col_pos_raq_x+(*raq\largeur/2)) And (col_testy>=col_pos_raq_y) And (col_testy<=col_pos_raq_y+*raq\hauteur)
    ;Bas droite
    col_testx=pal_centrex+pal_diagonale
    col_testy=pal_centrey+pal_diagonale
    col_bd=(col_testx>col_pos_raq_x) And (col_testx<col_pos_raq_x+(*raq\largeur/2)) And (col_testy>col_pos_raq_y) And (col_testy<=col_pos_raq_y+(*raq\hauteur/2))
    ;Bas
    col_testx=pal_centrex
    col_testy=col_pos_pal_y+*pal\hauteur
    col_b=(col_testx>=col_pos_raq_x) And (col_testx<=col_pos_raq_x+*raq\largeur) And (col_testy>col_pos_raq_y)  And (col_testy<=col_pos_raq_y+(*raq\hauteur/2))
    ;Bas gauche
    col_testx=pal_centrex-pal_diagonale
    col_testy=pal_centrey+pal_diagonale
    col_bg=(col_testx>=col_pos_raq_x) And (col_testx<col_pos_raq_x+*raq\largeur) And (col_testy>col_pos_raq_y) And (col_testy<=col_pos_raq_y+(*raq\hauteur/2))
    ;Gauche
    col_testx=col_pos_pal_x
    col_testy=pal_centrey
    col_g=(col_testx>=col_pos_raq_x) And (col_testx<col_pos_raq_x+*raq\largeur) And (col_testy>=col_pos_raq_y) And (col_testy<=col_pos_raq_y+*raq\hauteur)

    ;Effets de la collision
    If col_hg Or col_h Or col_hd Or col_d Or col_bd Or col_b Or col_bg Or col_g
      vecteur_copie(*raq\vit,@vcol)
      vecteur_produit_reel(@vcol,0.5)
      If col_b
        *pal\vit\vx=*pal\vit\vx+(*raq\vit\vx*0.1)
        *pal\vit\vy=-*pal\vit\vy+(*raq\vit\vy*0.5)
        *pal\y=*raq\y-*pal\hauteur
      ElseIf col_h
        *pal\vit\vx=*pal\vit\vx+(*raq\vit\vx*0.1)
        *pal\vit\vy=-*pal\vit\vy+(*raq\vit\vy*0.5)
        *pal\y=*raq\y+*raq\hauteur
      ElseIf col_g
        *pal\vit\vx=-*pal\vit\vx+(*raq\vit\vx*0.5)
        *pal\vit\vy=*pal\vit\vy+(*raq\vit\vy*0.1)
        *pal\x=*raq\x+*raq\largeur
      ElseIf col_d
        *pal\vit\vx=-*pal\vit\vx+(*raq\vit\vx*0.5)
        *pal\vit\vy=*pal\vit\vy+(*raq\vit\vy*0.1)
        *pal\x=*raq\x-*pal\largeur
      ElseIf col_bg
        *pal\vit\vx=-*pal\vit\vx+(*raq\vit\vx*0.5)
        *pal\vit\vy=-*pal\vit\vy+(*raq\vit\vy*0.5)
        *pal\x=*raq\x+*raq\largeur
        *pal\y=*raq\y-*pal\hauteur
      ElseIf col_bd
        *pal\vit\vx=-*pal\vit\vx+(*raq\vit\vx*0.5)
        *pal\vit\vy=-*pal\vit\vy+(*raq\vit\vy*0.5)
        *pal\y=*raq\y-*pal\hauteur
        *pal\x=*raq\x-*pal\largeur
      ElseIf col_hg
        *pal\vit\vx=-*pal\vit\vx+(*raq\vit\vx*0.5)
        *pal\vit\vy=-*pal\vit\vy+(*raq\vit\vy*0.5)
        *pal\x=*raq\x+*raq\largeur
        *pal\y=*raq\y+*raq\hauteur
      ElseIf col_hd
        *pal\vit\vx=-*pal\vit\vx+(*raq\vit\vx*0.5)
        *pal\vit\vy=-*pal\vit\vy+(*raq\vit\vy*0.5)
        *pal\x=*raq\x-*pal\largeur
        *pal\y=*raq\y+*raq\hauteur
      EndIf
      Break
    EndIf
  Next
EndProcedure

;***************
;-Initialisation
;***************
taille_ecran_x=1024
taille_ecran_y=768

If InitKeyboard()=0 Or InitMouse()=0 Or InitSprite()=0 Or OpenScreen(taille_ecran_x,taille_ecran_y,32,"")=0
  MessageRequester("Erreur", "Erreur d'initialisation DirectX", 0)
  End
EndIf

;Sprite d'effacement d'écran
sprite_clear=CreateSprite(#PB_Any,1024,768)

;Couleur transparente pour tous les sprites
TransparentSpriteColor(#PB_Default, RGB(255,0,255))

;Sprite de la raquette
raquette\sprite=CreateSprite(#PB_Any,100,15)
raquette\largeur=SpriteWidth(raquette\sprite)
raquette\hauteur=SpriteHeight(raquette\sprite)
StartDrawing(SpriteOutput(raquette\sprite))
Restore data_sprite_raquette
For ydata=0 To raquette\hauteur-1
  For xdata = 0 To raquette\largeur-1
    Read couldata
    Plot(xdata,ydata,couldata)
  Next xdata
Next ydata
StopDrawing()

;Caractéristiques du palet
palet\sprite=CreateSprite(#PB_Any,20,20)
palet\largeur=SpriteWidth(palet\sprite)
palet\hauteur=SpriteHeight(palet\sprite)
StartDrawing(SpriteOutput(palet\sprite))
Restore data_sprite_palet
For ydata=0 To palet\hauteur-1
  For xdata = 0 To palet\largeur-1
    Read couldata
    Plot(xdata,ydata,couldata)
  Next xdata
Next ydata
StopDrawing()

palet\x=0
palet\y=0
palet\vit\vx=3
palet\vit\vy=4
palet\maxx=taille_ecran_x-palet\largeur
palet\maxy=taille_ecran_y-palet\hauteur
palet\frottement=0.99

;Caractéristiques souris
souris\vit\vx=2.2
souris\vit\vy=1.8
souris\minx=0
souris\maxx=(taille_ecran_x-raquette\largeur)/souris\vit\vx
souris\miny=0 ;taille_ecran_y/3
souris\maxy=(taille_ecran_y-raquette\hauteur)/souris\vit\vy
If souris\vit\vx<1
  souris\vit\vx=1
EndIf
If souris\vit\vy<1
  souris\vit\vy=1
EndIf

;******************
;-Boucle principale
;******************
Repeat
  ;Lecture clavier
  ExamineKeyboard()
  
  ;Gestion souris
  gestion_souris(@souris)
  
  ;Gestion raquette
  gestion_raquette(@raquette,@souris)
  
  ;Gestion palet
  gestion_palet(@palet)
  
  ;Test collision Raquette<->Palet
  gestion_collision(@raquette,@palet)
  
  ;Mise à jour de l'affichage
  ;Efface l'écran
  DisplaySprite(sprite_clear,0,0)
  ;Gosub fps ; Temps entre deux images

  ;Affiche les sprites
  DisplayTransparentSprite(raquette\sprite,raquette\x,raquette\y)
  DisplayTransparentSprite(palet\sprite,palet\x,palet\y)

  FlipBuffers(#PB_Screen_SmartSynchronization)
  Delay(1)

Until KeyboardPushed(#PB_Key_Escape)

FreeSprite(raquette\sprite)
FreeSprite(palet\sprite)
FreeSprite(sprite_clear)
End

;****
;-FPS
;****
fps:
  mesure_tps1=ElapsedMilliseconds()
  FPS$= Str (mesure_tps1-mesure_tps2)
  StartDrawing ( ScreenOutput ())
  DrawingMode (1)
  FrontColor ( RGB (255,255,255))
  DrawText (1,1, FPS$+ " ms")
  DrawText (1,20, "Distance palet = " + StrF(palet\dist))
  DrawText (1,40, "Distance raquette = " + StrF(raquette\dist))
  StopDrawing ()
  mesure_tps2=ElapsedMilliseconds()
Return 

;********
;-Données
;********
DataSection
  data_sprite_raquette:
    Data.l $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0
    Data.l $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0
    Data.l $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0
    Data.l $C0C0C0, $C0C0C0, $C0C0C0, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $C0C0C0, $C0C0C0, $C0C0C0
    Data.l $C0C0C0, $C0C0C0, $C0C0C0, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $C0C0C0, $C0C0C0, $C0C0C0
    Data.l $C0C0C0, $C0C0C0, $C0C0C0, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $C0C0C0, $C0C0C0, $C0C0C0
    Data.l $C0C0C0, $C0C0C0, $C0C0C0, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $C0C0C0, $C0C0C0, $C0C0C0
    Data.l $C0C0C0, $C0C0C0, $C0C0C0, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $C0C0C0, $C0C0C0, $C0C0C0
    Data.l $C0C0C0, $C0C0C0, $C0C0C0, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $C0C0C0, $C0C0C0, $C0C0C0
    Data.l $C0C0C0, $C0C0C0, $C0C0C0, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $C0C0C0, $C0C0C0, $C0C0C0
    Data.l $C0C0C0, $C0C0C0, $C0C0C0, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $C0C0C0, $C0C0C0, $C0C0C0
    Data.l $C0C0C0, $C0C0C0, $C0C0C0, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $C0C0C0, $C0C0C0, $C0C0C0
    Data.l $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0
    Data.l $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0
    Data.l $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0

  data_sprite_palet:
    Data.l $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF
    Data.l $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF
    Data.l $FF00FF, $FF00FF, $FF00FF, $FF00FF, $C0C0C0, $C0C0C0, $C0C0C0, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $C0C0C0, $C0C0C0, $C0C0C0, $FF00FF, $FF00FF, $FF00FF, $FF00FF
    Data.l $FF00FF, $FF00FF, $FF00FF, $C0C0C0, $C0C0C0, $C0C0C0, $FFFF00, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $FFFF00, $C0C0C0, $C0C0C0, $C0C0C0, $FF00FF, $FF00FF, $FF00FF
    Data.l $FF00FF, $FF00FF, $C0C0C0, $C0C0C0, $FFFF00, $FFFF00, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $FFFF00, $FFFF00, $C0C0C0, $C0C0C0, $FF00FF, $FF00FF
    Data.l $FF00FF, $C0C0C0, $C0C0C0, $C0C0C0, $FFFF00, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $FFFF00, $C0C0C0, $C0C0C0, $C0C0C0, $FF00FF
    Data.l $FF00FF, $C0C0C0, $C0C0C0, $FFFF00, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $FFFF00, $C0C0C0, $C0C0C0, $FF00FF
    Data.l $FF00FF, $C0C0C0, $FFFF00, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $FFFF00, $C0C0C0, $FF00FF
    Data.l $C0C0C0, $C0C0C0, $FFFF00, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $FFFF00, $C0C0C0, $C0C0C0
    Data.l $C0C0C0, $C0C0C0, $FFFF00, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $FFFF00, $C0C0C0, $C0C0C0
    Data.l $C0C0C0, $C0C0C0, $FFFF00, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $FFFF00, $C0C0C0, $C0C0C0
    Data.l $C0C0C0, $C0C0C0, $FFFF00, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $FFFF00, $C0C0C0, $C0C0C0
    Data.l $FF00FF, $C0C0C0, $FFFF00, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $FFFF00, $C0C0C0, $FF00FF
    Data.l $FF00FF, $C0C0C0, $C0C0C0, $FFFF00, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $FFFF00, $C0C0C0, $C0C0C0, $FF00FF
    Data.l $FF00FF, $C0C0C0, $C0C0C0, $C0C0C0, $FFFF00, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $FFFF00, $C0C0C0, $C0C0C0, $C0C0C0, $FF00FF
    Data.l $FF00FF, $FF00FF, $C0C0C0, $C0C0C0, $FFFF00, $FFFF00, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $FFFF00, $FFFF00, $C0C0C0, $C0C0C0, $FF00FF, $FF00FF
    Data.l $FF00FF, $FF00FF, $FF00FF, $C0C0C0, $C0C0C0, $C0C0C0, $FFFF00, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $CCCC33, $FFFF00, $C0C0C0, $C0C0C0, $C0C0C0, $FF00FF, $FF00FF, $FF00FF
    Data.l $FF00FF, $FF00FF, $FF00FF, $FF00FF, $C0C0C0, $C0C0C0, $C0C0C0, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $FFFF00, $C0C0C0, $C0C0C0, $C0C0C0, $FF00FF, $FF00FF, $FF00FF, $FF00FF
    Data.l $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF
    Data.l $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $C0C0C0, $C0C0C0, $C0C0C0, $C0C0C0, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF, $FF00FF
EndDataSection

Edit : 22/08/09 - Mise à jour avec meilleure détection des collisions
Dernière modification par zorg le sam. 22/août/2009 14:27, modifié 1 fois.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Merci de ton partage.
J'y connais rien, mais c'est sur que y'a un super boulot 8)
Avatar de l’utilisateur
GallyHC
Messages : 1703
Inscription : lun. 17/déc./2007 12:44

Message par GallyHC »

Bonjour,

Quelque petit bug, mais cela est normal pour un debut :D, sinon cela peu etre bien prometteur. faudrais voir pour faire un bon design et ce sera parfait ;).

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Message par jbernard13 »

super boulot quand même

merci zorg
Avatar de l’utilisateur
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

Bien joué, bientôt un nouveau shufflepuck café ? :wink:
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
zorg
Messages : 35
Inscription : ven. 19/janv./2007 11:19
Localisation : France - Puy de Dôme
Contact :

Message par zorg »

Ar-S a écrit :Bien joué, bientôt un nouveau shufflepuck café ? :wink:
Ben ça alors, ça se voit tant que ça? :wink:
En fait c'est mon but final mais il y a encore enooooormément de boulot.. petit à petit

En tout cas, merci pour vos encouragements.
zorg
Messages : 35
Inscription : ven. 19/janv./2007 11:19
Localisation : France - Puy de Dôme
Contact :

Message par zorg »

Bonjour,

je viens de mettre le code à jour dans le premier post pour avoir une meilleure détection des collisions et une meilleure réaction du palet.

Bonne journée.
Anonyme

Message par Anonyme »

Excellent !
Manque plus que un jolie fond d'écran , des règles de base , deux joueurs , un support réseau / IA , ca fera un super jeu !

Bon boulot !
zorg
Messages : 35
Inscription : ven. 19/janv./2007 11:19
Localisation : France - Puy de Dôme
Contact :

Message par zorg »

Cpl.Bator a écrit :Manque plus que un jolie fond d'écran , des règles de base , deux joueurs , un support réseau / IA , ca fera un super jeu !
Oui, des broutilles quoi..
Je vais essayer d'en ajouter petit à petit.
Répondre