Code : Tout sélectionner
InitSprite() ; Initialise les sprites
InitKeyboard() ; Initialise le clavier
#sprite=1 ; on donne un numero au sprite
depx=4 ; deplacement horizontal
depy=4 ; deplacement vertical
etx=0
ety=0
If ExamineDesktops() ; Liste les bureaux
Width = DesktopWidth(0) ; Largeur actuelle
Height = DesktopHeight(0) ; Hauteur actuelle
Depth = DesktopDepth(0) ; Profondeur de couleurs actuelle
Rien$ = "MIEUX QUE RIEN" ; Titre de l'application à B13
If OpenScreen(Width, Height, Depth, "Intro") ; Ouvre l'écran
CreateSprite(#sprite,32,32) ; on cree un sprite de 32 par 32
StartDrawing(SpriteOutput(#sprite)) ; on va dessiner dedans !!
Circle(16,16,16,RGB(0,0,255)) ; un rond bleu
StopDrawing() ; voila notre sprite est pret !! :D
; on va pouvoir l'apeler par son nom !! (#sprite)
xsprite_pas=10 ; ceci va determiner le sens du sprite pour les X et sa vitesse de deplacement
ysprite_pas=10; ceci va determiner le sens du sprite pour les Y et sa vitesse de deplacement
Repeat ; Boucle
ClearScreen(0) ; Efface l'écran
ExamineKeyboard() ; Scanne l'état du clavier
StartDrawing(ScreenOutput()) ; Démarre le dessin dans le buffer
;--------------- simulateur d'antenne cassée --------------------
recep +20 ;pas de la figne de synchro
If recep>Height-4 ;il elle est en bas
recep =2 ;on la remet en haut
EndIf
LineXY(0,recep,Width,recep,RGB(110,110,110)) ;lignes synchro
LineXY(0,recep-1,Width,recep-1,RGB(90,90,90))
LineXY(0,recep+1,Width,recep+1,RGB(90,90,90))
LineXY(0,recep-2,Width,recep-2,RGB(70,70,70))
LineXY(0,recep+2,Width,recep+3,RGB(70,70,70))
For etoile =0 To 30000 ;nombre de fourmis
etx=Random(Width-3)+1 ;position aleatoire des fourmis en coordonné x
ety=Random(Height-3)+1 ;position aleatoire des fourmis en coordonné y
Plot (etx,ety,RGB(255,255,255)) ;plusieur "plot" pour donner du relief a la foumis
Plot (etx+1,ety,RGB(230,230,230))
Plot (etx-1,ety,RGB(230,230,230))
Plot (etx,ety+1,RGB(230,230,230))
Plot (etx,ety-1,RGB(230,230,230))
Plot (etx+1,ety+1,RGB(150,150,150))
Plot (etx-1,ety-1,RGB(150,150,150))
Plot (etx-1,ety+1,RGB(150,150,150))
Plot (etx+1,ety-1,RGB(150,150,150))
Next
LineXY(0,ety,Width,ety,RGB(150,150,150)) ;ligne horizontal parasite
LineXY(0,ety-1,Width,ety-1,RGB(120,120,120))
LineXY(0,ety+1,Width,ety+1,RGB(120,120,120))
;--------- fin du simulateur d antenne cassée ------------------
DrawText((Width/2 - TextWidth(Rien$)/2)+a, (Height/2 - TextHeight(Rien$)/2)+b, "MIEUX QUE RIEN", $FFFFFF, $000000) ; Dessine
a+depx ;on deplace la position du texte sur l horizontal
b+depy ;on deplace la position du texte sur la vertical
If (Width/2 - TextWidth(Rien$)/2)+a>Width-TextWidth(Rien$) ;si le texte depasse la largeure de l' écran
depx=-depx ;on inverse le pas horizontal en négatif
EndIf
If (Width/2 - TextWidth(Rien$)/2)+a<0 ;si le texte depasse a gauche de l' écran
depx=-depx ;on inverse le pas horizontal en positif
EndIf
If (Height/2 - TextHeight(Rien$)/2)+b>Height-TextHeight(Rien$);si le texte depasse la hauteur de l' écran
depy=-depy ;on inverse le pas vertical en negatif
EndIf
If (Height/2 - TextHeight(Rien$)/2)+b<0 ;si le texte depasse en base de l' écran
depy=-depy ;on inverse le pas vertical en positif
EndIf
StopDrawing() ; C'est fini
; on va tester si le sprite va sortir de l'ecran
; et fabriquer un rebond par inversion de la coordonée au cas ou ...
x_sprite=x_sprite + xsprite_pas ; on lance l'animation de la coordonées X
y_sprite=y_sprite + ysprite_pas ; on lance l'animation de la coordonées Y
; on test les sorties d'ecran
If x_sprite>Width-32 Or x_sprite<0 ; si la coordonée X du sprite est superieur a la largeur de l'ecran (sortie a droite) ou plus petit que zero (sortie a gauche)
; le "-32" sert a ce que la detection de la sortie se fasse a droite du Sprite
xsprite_pas=-xsprite_pas ; on inverse le sens des x , ce qui aura pour consequence de faire aller le Sprite dans l'autre sens des X
Beep_(100,20) ; fait un bruit
EndIf
If y_sprite>Height-32 Or y_sprite<0 ; si la coordonée Y du sprite est superieur a la lhauteur de l'ecran (sortie en bas) ou plus petit que zero (sortie en haut)
; le "-32" sert a ce que la detection de la sortie se fasse au dessous du Sprite
ysprite_pas=-ysprite_pas ; on inverse le sens des Y , ce qui aura pour consequence de faire aller le Sprite dans l'autre sens des Y
Beep_(100,20); fait un bruit
EndIf
DisplaySprite(#sprite,x_sprite,y_sprite) ; on affiche le Sprite aux coordonées
FlipBuffers() ; Inverse les buffers
Until KeyboardPushed(#PB_Key_Escape) ; On s'en va!!!
EndIf
EndIf
End ; Adios!