Page 4 sur 6
Publié : sam. 17/janv./2009 14:36
par Anonyme
Vouala , quelqu'un de raisonnable

On va commencer par un simple pong en 2D
Reprends ce que j'ai dis plus haut , et poste ton code ici , je t'expliquerais tes problèmes et on les résoudra ensemble.
Publié : sam. 17/janv./2009 15:44
par guerrier001
d'accord.Mais l'ennuie c'est que je ne c'est faire que des fenetre des boutons et du texte en 2d pas des jeux.
Publié : sam. 17/janv./2009 16:06
par Anonyme
Que ce soit une application , un jeux , le code est le même. tu programmes , point barre.
Tu sais ouvrir une application en mode plein écran et mettre une couleur de fond ?
Code : Tout sélectionner
InitSprite() InitKeyboard()
OpenScreen(1024,768,32,"MonProgramme")
repeat
clearscreen(rgb(64,128,255))
examinekeyboard()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Comprends tu ce code ?
Publié : sam. 17/janv./2009 16:13
par guerrier001
oui , d'abord tu initial les commande tu crée une fenêtre en 1024-768 et la couleur mode 32 bits , tu fait en sorte que le programme se ferme si l'utilisateur appuie sur echap. C'est ça ?
Publié : sam. 17/janv./2009 16:14
par Anonyme
Oui , maintenant la notion de variable te dis quelque chose ?
Publié : sam. 17/janv./2009 16:28
par guerrier001
variable comme quoi ?
Publié : sam. 17/janv./2009 16:38
par Anonyme
J'avais commencer à écrire un bouquin pour les débutants :
http://www.penguinbyte.com/apps/pbwebst ... issage.pdf
je me suis pas fait relire , C'est l'occasion de voir si ca tiens debout.
Publié : sam. 17/janv./2009 16:40
par guerrier001
D'accord
Edit : ce type de variable ! Oui j'ai dej vu, il ne doivent etre composer que de chiffre sauf les chaine de caractere a moins que c'est le contraire ?
Publié : sam. 17/janv./2009 17:56
par jbernard13
Cpl.Bator
j'attends la suite du livre avec impatience
si tu veux un coup de main je suis là ....
Publié : sam. 17/janv./2009 18:06
par Anonyme
Donc , les variables servent à faire retenir des nombres au programme.
on les utilises pour tout : des coordonnées , des tailles , des angles , etc...
Code : Tout sélectionner
InitSprite() : InitKeyboard()
ScreenX.i = 1024
ScreenY.i = 768
Rayon.i = 100
OpenScreen(ScreenX,ScreenY,32,"MonProgramme")
Repeat
ClearScreen(RGB(64,128,255))
ExamineKeyboard()
StartDrawing(ScreenOutput())
Circle(ScreenX/2 , ScreenY/2 , Rayon,RGB(255,0,0))
StopDrawing()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
Tu peut changer la position du cercle , pour y mettre les coordonées de la souris. je te laisse utilisé l'aide (F1) pour la liste des commandes.
Poste ton résultat ici.
Publié : sam. 17/janv./2009 18:58
par tmyke
Je vois que cela évolue bien guerrier001, et tu as en guise de formateur 2D en plus un maitre en
la matière. Cool

Publié : sam. 17/janv./2009 19:01
par jbernard13
Publié : sam. 17/janv./2009 19:23
par guerrier001
Voila j'ai trouver la solution il fallait que je démarre la souris , le fait examiner (il disait qu'avant de démarrer quoi que ce soit faire la commande ExamineMouse() qui ressemble a celui du clavier puis faire en sorte que la souris se déplace ensuite changer tes valeur du cercle qui devait est au centre de la fenêtre en mode pleine écran pour que au lieu il suit la souris , et avec l'action répéter que tu a mis le cercle suit la position actuel de la souris a chaque fois jusqu'à que l'on arrête avec echap. Est ce que c'était ça que tu attendait de moi ?
Code : Tout sélectionner
InitSprite() : InitKeyboard() ;le demarrage du sprite et du clavier
InitMouse() ;j'ai démarrer la souris
ScreenX.i = 1024 ;la longueur de la fenetre en plein ecran
ScreenY.i = 768 ; La largeur de la fenetre en plein ecran
Rayon.i = 200 ;j'ai agrandi le rayon du cercle
OpenScreen(ScreenX,ScreenY,32,"MonProgramme modifier") ; l'ouverture de la fentre en mode plein ecran avec son titre et le nombre de couleur
Repeat ;repete la meme procedure a chaque fois
ClearScreen(RGB(64,128,2)) ; la scene a une couleur verte
ExamineKeyboard()
ExamineMouse() ;Examine la position de la souris je crois
x = 25 ; la lettre x (horizontal) est egale a 25 pixel
y = 25 ; la lettre y (vertical) est egale a 25 pixel
x = MouseX() ; donne la position actuel en x de la souris en fesant faire des bond de 25 pixel
y = MouseY(); donne la position actuel en y de la souris en fesant faire des bond de 25 pixel
StartDrawing(ScreenOutput()) ;on recommence a faire a dessiner grace a la commande repeat
Circle(MouseX() , MouseY() , Rayon,RGB(120,60,30))
;le cercle est egal a la position x et y de la souris grace a Repeat le cercle renouvelle a
;chaque fois la position de la souris ce qui fait que le cercle suit la souris et qu'il a une couleur marron
StopDrawing() ;on arrete supprime (ou arrete le dessin
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) ;on appuie sur echap pour quitter
Publié : sam. 17/janv./2009 19:36
par Anonyme
C'est très bien. tu comprends vite , c'est parfait.
Code : Tout sélectionner
x = 25 ; la lettre x (horizontal) est egale a 25 pixel
y = 25 ; la lettre y (vertical) est egale a 25 pixel
dans le code du dessus , on ne dit pas "lettre" , mais variable.
les initialiser à 25 ne sert a rien
Maintenant , je veut que dessine cela ( oublie la ligne centrale et le score)
juste avec les commandes de dessins du purebasic
Tu as vu la fonction Circle() , il y a Box() Aussi , Plot() Line() etc...
Donc , le corps de ton programme sera le suivant :
Des variables pour la position de la raquette gauche en x&y
idem pour la droite et aussi pour la balle.
Publié : sam. 17/janv./2009 20:00
par Anonyme
Pour t'occuper encore un peu , j'ai mis en mouvement la babale
je te fait grâce des angles sinus et cosinus pour le pong.
La direction est défini grace à 4 variables, haut,bas,gauche,droite
Code : Tout sélectionner
InitSprite() : InitKeyboard() ;le demarrage du sprite et du clavier
InitMouse() ;j'ai démarrer la souris
ScreenX.i = 1024 ;la longueur de la fenetre en plein ecran
ScreenY.i = 768 ; La largeur de la fenetre en plein ecran
Rayon.i = 20 ;j'ai agrandi le rayon du cercle
; Direction de la babale
Dir_Haut = 1
Dir_Bas = 0
Dir_Droite = 1
Dir_Gauche =0
Vitesse = 5
BalleX= ScreenX / 2
BalleY= ScreenY / 2
OpenScreen(ScreenX,ScreenY,32,"MonProgramme modifier") ; l'ouverture de la fentre en mode plein ecran avec son titre et le nombre de couleur
Repeat ;repete la meme procedure a chaque fois
ClearScreen(RGB(64,128,2)) ; la scene a une couleur verte
ExamineKeyboard()
ExamineMouse() ;Examine la position de la souris je crois
;Mouvement de la balle
If Dir_Haut = 1
BalleY - Vitesse
EndIf
If Dir_Bas = 1
BalleY + Vitesse
EndIf
If Dir_Droite = 1
BalleX + Vitesse
EndIf
If Dir_Gauche = 1
BalleX - Vitesse
EndIf
;Colllision avec le Haut de l'écran. le haut est egal a 0
If BalleY-Rayon < 0
Dir_Bas=1
Dir_Haut=0
EndIf
;Colllision avec le Bas de l'écran. le bas est egal a ScreenY
If BalleY+Rayon > ScreenY
Dir_Bas=0
Dir_Haut=1
EndIf
;Colllision avec la gauche de l'écran. egal a 0
If BalleX-Rayon < 0
Dir_Gauche=0
Dir_Droite=1
EndIf
;Colllision avec la gauche de l'écran. egal a 0 ScreenX
If BalleX+Rayon > ScreenX
Dir_Gauche=1
Dir_Droite=0
EndIf
StartDrawing(ScreenOutput()) ;on recommence a faire a dessiner grace a la commande repeat
Circle(BalleX,BalleY , Rayon,RGB(120,60,30))
;le cercle est egal a la position x et y de la souris grace a Repeat le cercle renouvelle a
;chaque fois la position de la souris ce qui fait que le cercle suit la souris et qu'il a une couleur marron
StopDrawing() ;on arrete supprime (ou arrete le dessin
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) ;on appuie sur echap pour quitter