Exemple de sprite uniquement avec des datas
Publié : jeu. 01/avr./2010 11:29
Ca se passe en dessous
Forums PureBasic - Français
http://forums.purebasic.com/french/
Code : Tout sélectionner
Structure fool
Id.w
X.w
Y.w
S.w
EndStructure
Global WindowW=800
Global WindowH=600
Global NewList Nemo.fool()
; Initialisations
If InitSprite () =0 Or InitKeyboard ()=0 Or InitMouse ()=0
MessageRequester ( "Problème" , "Initialisations impossibles" , 0)
End
EndIf
; Ouverture écran
If OpenWindow (0,0,0,WindowW,WindowH, "Contribution" , #PB_Window_SystemMenu | #PB_Window_ScreenCentered )
If OpenWindowedScreen ( WindowID (0),0,0,WindowW,WindowH,1,0,0)
ClearScreen(RGB (0,0,128))
CreateSprite(0,16,16)
Restore nemo
StartDrawing(SpriteOutput(0))
For i=0 To 15
For j=0 To 15
Read donnee
Plot (j,i,donnee)
Next j
Next i
StopDrawing()
For i=0 To 15
AddElement(Nemo())
Nemo()\Id=i
Nemo()\X=Random(WindowW-16)+1
Nemo()\Y=Random(WindowH-16)+1
Nemo()\S=Random(5)+1
Next i
Repeat
ExamineKeyboard()
ExamineMouse()
Event=WindowEvent()
ForEach Nemo()
Y=(Sin((Nemo()\X+120)/WindowW* #PI *3)*64)+Nemo()\Y
TransparentSpriteColor(0,$000080)
DisplayTransparentSprite(0,Nemo()\X,Y)
Nemo()\X=Nemo()\X-Nemo()\S
If Nemo()\X<-16
Nemo()\X=WindoWW+17
EndIf
Next
FlipBuffers()
ClearScreen(RGB(0,0,128))
Until KeyboardPushed ( #PB_Key_Escape ) Or Event= #PB_Event_CloseWindow Or MouseButton ( #PB_MouseButton_Right )
EndIf
EndIf
End
DataSection
nemo:
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$0
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$0
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$0
Data.l $000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080,$66FF
Data.l $000080,$000080,$000080,$66FF,$66FF,$66FF,$FFFFFF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF
Data.l $000080,$000080,$66FF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$66FF,$66FF,$66FF
Data.l $000080,$66FF,$66FF,$000080,$000080,$FFFFFF,$FFFFFF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF
Data.l $66FF,$66FF,$66FF,$FFFF,$000080,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$0
Data.l $66FF,$66FF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$66FF,$000080,$0
Data.l $66FF,$66FF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$0
Data.l $000080,$000080,$66FF,$66FF,$FFFFFF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF
Data.l $000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$66FF,$66FF,$66FF
Data.l $000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF
Data.l $000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080,$66FF
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$0
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
EndDataSection
Code : Tout sélectionner
Structure fool
Id.w
X.w
Y.w
S.w
EndStructure
Global WindowW=800
Global WindowH=600
Global NewList Nemo.fool()
Global NewList Bubl.fool()
; Initialisations
If InitSprite () =0 Or InitKeyboard ()=0 Or InitMouse ()=0
MessageRequester ( "Problème" , "Initialisations impossibles" , 0)
End
EndIf
; Ouverture écran
If OpenWindow (0,0,0,WindowW,WindowH, "Contribution" , #PB_Window_SystemMenu | #PB_Window_ScreenCentered )
If OpenWindowedScreen ( WindowID (0),0,0,WindowW,WindowH,1,0,0)
ClearScreen(RGB (0,0,128))
CreateSprite(0,16,16)
Restore nemo
StartDrawing(SpriteOutput(0))
For i=0 To 15
For j=0 To 15
Read donnee
Plot (j,i,donnee)
Next j
Next i
StopDrawing()
CreateSprite(1,16,16)
Restore bub
StartDrawing(SpriteOutput(1))
For i=0 To 15
For j=0 To 15
Read donnee
Plot (j,i,donnee)
Next j
Next i
StopDrawing()
CreateSprite(2,16,16)
Restore Sub
StartDrawing(SpriteOutput(2))
For i=0 To 15
For j=0 To 15
Read donnee
Plot (j,i,donnee)
Next j
Next i
StopDrawing()
For i=0 To 55
AddElement(Nemo())
Nemo()\Id=i
Nemo()\X=Random(WindowW-16)+1
Nemo()\Y=Random(WindowH-16)+1
Nemo()\S=Random(5)+1
Next i
For i=0 To 15
AddElement(Bubl())
Bubl()\X=Random(WindowW-16)+1
Bubl()\Y=Random(WindowH-16)+1
Bubl()\S=Random(5)+1
Next i
SubMarine.fool\Id=0
SubMarine.fool\X=601
SubMarine.fool\Y=Random(WindowW)+1
SubMarine.fool\S=Random(6)+1
aleat=Random(100)+1
Repeat
ExamineKeyboard()
ExamineMouse()
Event=WindowEvent()
ForEach Nemo()
Y=(Sin((Nemo()\X+120)/WindowW* #PI *3)*64)+Nemo()\Y
TransparentSpriteColor(0,$000080)
DisplayTransparentSprite(0,Nemo()\X,Y)
Nemo()\X=Nemo()\X-Nemo()\S
If Nemo()\X<-16
Nemo()\X=WindoWW+17
EndIf
Next
ForEach Bubl()
X=(Sin((Bubl()\Y+120)/WindowH* #PI *3)*64)+Bubl()\X
TransparentSpriteColor(1,$000080)
DisplayTransparentSprite(1,X,Bubl()\Y)
Bubl()\Y=Bubl()\Y-Bubl()\S
If Bubl()\Y<-16
Bubl()\Y=WindowH+17
EndIf
Next
If aleat%20=0
TransparentSpriteColor(2,$000080)
DisplayTransparentSprite(2,Submarine.fool\X,SubMarine.fool\Y)
SubMarine.fool\X=SubMarine.fool\X-SubMarine.fool\S
If SubMarine.fool\X<-17
SubMarine.fool\X=601
aleat=Random(100)+1
SubMarine.fool\Y=Random(WindowW)+1
SubMarine.fool\S=Random(6)+1
EndIf
Else
aleat=Random(100)+1
EndIf
FlipBuffers()
ClearScreen(RGB(0,0,128))
Until KeyboardPushed ( #PB_Key_Escape ) Or Event= #PB_Event_CloseWindow Or MouseButton ( #PB_MouseButton_Right )
EndIf
EndIf
End
DataSection
nemo:
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080,$66FF
Data.l $000080,$000080,$000080,$66FF,$66FF,$66FF,$FFFFFF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF
Data.l $000080,$000080,$66FF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$66FF,$66FF,$66FF
Data.l $000080,$66FF,$66FF,$000080,$000080,$FFFFFF,$FFFFFF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF
Data.l $66FF,$66FF,$66FF,$FFFF,$000080,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$000080
Data.l $66FF,$66FF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$66FF,$000080,$000080
Data.l $66FF,$66FF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$FFFFFF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$000080
Data.l $000080,$000080,$66FF,$66FF,$FFFFFF,$66FF,$66FF,$FFFFFF,$FFFFFF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF
Data.l $000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$66FF,$66FF,$66FF
Data.l $000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF
Data.l $000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080,$66FF
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$66FF,$66FF,$66FF,$66FF,$000080,$000080,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
Bub:
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$000080,$FFFFFF,$FFFFFF,$FFFFFF,$FFFFFF,$FFFFFF,$FFFFFF,$000080,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$FFFFFF,$FFFFFF,$000080,$000080,$FFFFFF,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$000080,$000080,$FFFFFF,$000080,$FFFFFF,$000080,$000080,$000080
Data.l $000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080
Data.l $000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080
Data.l $000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080
Data.l $000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080
Data.l $000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080,$000080,$000080,$FFFFFF,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$000080,$FFFFFF,$FFFFFF,$FFFFFF,$FFFFFF,$FFFFFF,$FFFFFF,$000080,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
Sub:
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$000080,$FF00,$FF00,$FF00,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$000080,$FF00,$FF00,$FF00,$FF00,$000080,$000080,$000080,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$000080,$FF00,$FF00,$FF00,$FF00,$000080,$000080,$000080,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$FF00,$FF00,$000080,$000080,$000080,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$FF00,$FF00,$000080,$000080,$000080,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$000080,$000080,$80
Data.l $000080,$000080,$FF00,$99FFFF,$99FFFF,$FF00,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$FF00,$000080,$FF00
Data.l $000080,$FF00,$99FFFF,$99FFFF,$99FFFF,$FF00,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$FF00,$FF00
Data.l $000080,$FF00,$FF00,$FF00,$FF00,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$FF00,$FF00
Data.l $000080,$FF00,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$800000,$FF00,$000080,$FF00
Data.l $000080,$000080,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$FF00,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
Data.l $000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080,$000080
EndDataSection
Azur a écrit :Héhé
Utilises-tu un script qui te transforme une image bitmap en une liste de data, ou fais-tu ça à la mano ?
Code : Tout sélectionner
Sub sprite()
Set f1 = ActiveSheet
For y = 1 To 16
f1.Cells(y, 19).Value = ""
For x = 1 To 16
f1.Cells(y, 19).Value = f1.Cells(y, 19).Value & "$" & Hex(f1.Cells(y, x).Interior.Color) & ","
Next x
f1.Cells(y, 19).Value = Left(f1.Cells(y, 19).Value, Len(f1.Cells(y, 19).Value) - 1)
Next y
End Sub