Page 4 sur 6

Publié : sam. 17/janv./2009 14:36
par Anonyme
Vouala , quelqu'un de raisonnable :D
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
j'apprend aussi :o :o :o :o :o

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)

Image

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