Voilà je cherche le meilleur moyen selon vous, pour afficher des sprites dans des positions aléatoire.
Mais attention pas si aléatoire que sa Si non c'est trop facile.
J'ai fait un petit code d'exemple, qui explique ce que je souhaite faire.
Code : Tout sélectionner
;- Window Constants
Enumeration
#Window_0
EndEnumeration
;- Gadgets Constants
Enumeration
EndEnumeration
;{ INITIALISATIONS
;- Initialisation environnement sprite
If InitSprite() = 0
MessageRequester("Erreur", "Impossible d'ouvrir l'écran & l'environnement nécessaire aux sprites !", 0)
End
EndIf
;- Initialisation environnement clavier
If InitKeyboard() = 0
MessageRequester("Erreur", "Impossible d'initialisé le clavier !", 0)
End
EndIf
;- Initialisation environnement souris
If InitMouse() = 0
MessageRequester("Erreur", "Impossible d'initialisé la souris !", 0)
End
EndIf
;- Initialisation environnement sound
If InitSound() = 0
MessageRequester("Erreur", "Impossible d'initialisé l'environnement son !", 0)
End
EndIf
;}
;- Ouverture de la fenetre
If OpenWindow(#Window_0, 0, 0, 200, 200, "", #PB_Window_ScreenCentered)
;{ Chargement des sprites
;- Chargement des sprites
If OpenWindowedScreen(WindowID(#Window_0), 0, 0, 200, 200)
; on créer le sprite rouge
If CreateSprite(0, 200, 100, 0)
StartDrawing(SpriteOutput(0))
Box(0, 0, 100, 100, RGB(255, 0, 0))
StopDrawing()
EndIf
; on créer le sprite vert
If CreateSprite(1, 200, 100, 0)
StartDrawing(SpriteOutput(1))
Box(0, 0, 100, 100, RGB(0, 255, 0))
StopDrawing()
EndIf
; on créer le sprite bleu
If CreateSprite(2, 200, 100, 0)
StartDrawing(SpriteOutput(2))
Box(0, 0, 100, 100, RGB(0, 0, 255))
StopDrawing()
EndIf
; on créer le sprite jaune
If CreateSprite(3, 200, 100, 0)
StartDrawing(SpriteOutput(3))
Box(0, 0, 100, 100, RGB(255, 255, 0))
StopDrawing()
EndIf
EndIf
;}
;{ affichage des sprites
;- affichage des sprites
DisplayTransparentSprite(0, 0, 0)
DisplayTransparentSprite(1, 100, 0)
DisplayTransparentSprite(2, 0, 100)
DisplayTransparentSprite(3, 100, 100)
;}
EndIf
;- Boiucle d'evenement
Repeat
; Il est très important de traiter tous les événements restants dans la file d'attente à chaque tour
Repeat
Event = WindowEvent()
Select Event
Case #PB_Event_Gadget
If EventGadget() = 0
End
EndIf
Case #PB_Event_CloseWindow
End
EndSelect
Until Event = 0
FlipBuffers()
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape) ; on appuie sur echappe pour quitter
End
Ce que je souhaiterais faire, c'est que les sprites s'affichent en X et Y a des endroit bien précis, mais que les sprites eux même changent de place.
j'avoue cette phrase ne veux rien dire
exemple :
voici ce que vous allez voir d'origine :
| R | | V |
| B | | J |
Moi je souhaiterais par exemple avoir sa :
| B | | V |
| J | | R |
Mais de façon aléatoire. J'ai donc pensé donner un numéro a l'id de chaque sprite pour les afficher via un random, mais le problème du random c'est qu'il peut donner plusieurs foi le même numéro. Et sa je ne souhaite pas.
J’espère mettre fait comprendre. Car j'ai moi même du mal a rédiger ce topic
D'avance merci.
@++