code ascii
g mis ";" devant:
;ClearScreen ( RGB (0, 0,0)) ; nettoie l'ecran apres affichage et...
pour interdire l'instruction....
on se deplace dans un tableau virtuel, celui des sprites ...enfin je veux dire il y a deux ecrans le notre et celui des sprites ....piuwww je sais plus , en fait tu effaces l'ecran du "nous" ......(je deviens fou)
;ClearScreen ( RGB (0, 0,0)) ; nettoie l'ecran apres affichage et...
pour interdire l'instruction....
on se deplace dans un tableau virtuel, celui des sprites ...enfin je veux dire il y a deux ecrans le notre et celui des sprites ....piuwww je sais plus , en fait tu effaces l'ecran du "nous" ......(je deviens fou)
c'est un peu pour ça qu'au depart, je voulais entreprendre un Tutochikun a écrit :g mis ";" devant:
;ClearScreen ( RGB (0, 0,0)) ; nettoie l'ecran apres affichage et...
pour interdire l'instruction....
on se deplace dans un tableau virtuel, celui des sprites ...enfin je veux dire il y a deux ecrans le notre et celui des sprites ....piuwww je sais plus , en fait tu effaces l'ecran du "nous" ......(je deviens fou)
parce que tu vois tout n'est pas limpide toujours

en faite Purebasic utilise le Double Bufering, mais "automatique", le programmeur , en principe n'as pas a s'en occupé !!
le ClearScreen ( RGB (0, 0,0)) sert a effacer tous ce qui se trouve sur l'ecran
imagine au ralenti :
une grande salle (c'est l'ecran)
apparait soudainement un Cube dans cette salle (c'est un Sprite)
si la femme (hum ou l'homme) de menage ne viens pas retirer ce cube
a la prochaine boucle (toutes les Heures : ) )
un autre Cube (ayant la meme apparence !!) va tomber et va remplacer le premier cube, mais aussi peut ajouter un Cube ailleurs (si le sprite se deplace dans la salle

donc si le technicien de surface, ne fait rien (;ClearScreen ( RGB (0, 0,0)))
les cubes vont remplir petit a petit la salle a chaque boucle (toutes les heures) !!
maintenant si on dit au technicien de surface de nettoyer la salle , en retirant tout ce qui s'y trouve
ClearScreen ( RGB (0, 0,0))
5 minutes avant que chaque heure ne sonne (juste avant la fin de la boucle : ) )
et bien au moment de l'heure , il n'y aura toujours qu'un seul Cube dans la salle !!

en bref et pour resumer

si tu désactive ClearScreen ( RGB (0, 0,0))
les sprites et tout ce qui s'affiche a l'ecran vont laisser une trace
a chaque déplacement , ce peut etre un effet voulu pour simuler uncrayon qui dessine par exemple

si ClearScreen ( RGB (0, 0,0)) est actif, l'ecran sera nettoyé nickel, pour le dessin suivant

;********************************
en fait effectivement
la structure (une forme de tableau)
retiens en temps reel les coordonées de chaque Sprite !!!
et au moment de l'affichage on pioche les coordonées memorisé dans la structure
rapelle toi on fait
Code : Tout sélectionner
If KeyboardPushed(#PB_Key_Up ) ; fleche haut
balle(#nous)\y =balle(#nous)\y-2
EndIf
If KeyboardPushed(#PB_Key_Down ) ; fleche bas
balle(#nous)\y =balle(#nous)\y+2
EndIf
If KeyboardPushed(#PB_Key_Left ) ; fleche gauche
balle(#nous)\x =balle(#nous)\x-2
EndIf
If KeyboardPushed(#PB_Key_Right ) ; fleche droite
balle(#nous)\x =balle(#nous)\x+2
EndIf

comme ça en permanence
etballe(#nous)\x
retiennent la dernière coordonnée du sprite #nousballe(#nous)\y

au moment de l'affichage
on relis les contenu de nos variables (structure)DisplayTransparentSprite(#nous, balle(0)\x, balle(0)\y) ; on affiche notre sprite
balle(0)\x
balle(0)\x
ps 0= c'est #Nous

comment inserer une instruction dans ton prog pour une interruption de prog (comme sous console, a$=inkey(): if a$........)
car g mis delay(500) apres
ClearScreen ( RGB (0, 0,0)) ; nettoie l'ecran apres affichage
delay(500)
et c pas tout l'ecran qui s'efface (comme tu l'as dit), pas ceux des sprites ...(?)
g pas trop peur d'etre nul avec toi

car g mis delay(500) apres
ClearScreen ( RGB (0, 0,0)) ; nettoie l'ecran apres affichage
delay(500)
et c pas tout l'ecran qui s'efface (comme tu l'as dit), pas ceux des sprites ...(?)
g pas trop peur d'etre nul avec toi


Code : Tout sélectionner
ClearScreen ( RGB (0, 0,0)) ; nettoie l'ecran apres affichage
je suis fatigué, je bute la dessus car tu dis plus haut, que celà efface tout ce qui se trouve a l'ecran.
En fesant une pause sous cette instruction... je n'arrive pas à me le prouver...
en tout cas merci , tu as bq de patiente vu que tu reponds un peu partout et que tu t'occupes des tutos
g un blem avec les ecrans, virtuel ou pas, a demain
Dobro a écrit :ben met la simplement en rem ";"chikun a écrit :Code : Tout sélectionner
ClearScreen ( RGB (0, 0,0)) ; nettoie l'ecran apres affichage
je suis fatigué, je bute la dessus car tu dis plus haut, que celà efface tout ce qui se trouve a l'ecran.
et tu bouge le carré avec les touches flechées, tu verra bien que le carré laisse des traces ...
Code : Tout sélectionner
;- test du materiel
;*******************************************************************************************************
If InitSprite()=0
msg_erreur("impossible d'initialiser les sprites"+Chr(10)+" le prg va quitter ")
End
EndIf
If InitMouse()=0
msg_erreur("impossible d'initialiser la souris"+Chr(10)+" le prg va quitter ")
End
EndIf
If InitKeyboard()=0
msg_erreur("impossible d'initialiser le clavier"+Chr(10)+" le prg va quitter ")
End
EndIf
If InitJoystick()=0
msg_erreur("impossible d'initialiser le joystick"+Chr(10)+" on va continuer sans ")
joystick=0
Else
joystick=1 ; le joystick est present !!
EndIf
If InitChikun() = 0
msg_erreur("Impossible d'initialiser le Chikun"+Chr(10)+" Le Dobro va quitter")
End
Endif
mais c ce que g fait , je te l'ai meme montrer plus haut , j'ai bien mis le ";" avant la ligne et g bien vu que le "nous" ne s'effaçait plus!!!!!!!!!!!!!!!
je dis que si on arretait le temps juste APRES cette ligne:
ClearScreen(RGB(0, 0,0)) ; nettoie l'ecran apres affichage
les sprites etaient toujour AFFICHER..... hors tu dis que ça efface TOUT l'ecran
en tout cas , Dobro, si tu abandonnes, je ne t'en voudrais pas
Tu t'ais donné bien du mal
en fait g l'impression de 2 calques: ceux des sprites (eux) et notre calque...et "by dobro" est sur le notre...
@chris

je dis que si on arretait le temps juste APRES cette ligne:
ClearScreen(RGB(0, 0,0)) ; nettoie l'ecran apres affichage
les sprites etaient toujour AFFICHER..... hors tu dis que ça efface TOUT l'ecran
en tout cas , Dobro, si tu abandonnes, je ne t'en voudrais pas
Tu t'ais donné bien du mal

en fait g l'impression de 2 calques: ceux des sprites (eux) et notre calque...et "by dobro" est sur le notre...
@chris


Code : Tout sélectionner
le resultat effectif de Clearscreen() aura lieu seulement Apres le
FLIPBUFFERS() !!
puisque c'est cette instruction qui lance le balayage du pinceau sur l'ecran
(en realité elle swap l'ecran virtuel avec l'ecran physique <-- Ref : Stos Basic )
cette fonction est indispensable pour voir un résultat a l'écran
tu peux imaginer que c'est elle qui envoie concrètement le contenu de ton écran a ta carte graphique
FLIPBUFFERS() !!
puisque c'est cette instruction qui lance le balayage du pinceau sur l'ecran
(en realité elle swap l'ecran virtuel avec l'ecran physique <-- Ref : Stos Basic )
cette fonction est indispensable pour voir un résultat a l'écran
tu peux imaginer que c'est elle qui envoie concrètement le contenu de ton écran a ta carte graphique
