PureBasic

Forums PureBasic
Nous sommes le Ven 23/Aoû/2019 14:24

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 4 messages ] 
Auteur Message
 Sujet du message: Début d'un casseBrique
MessagePosté: Lun 03/Juil/2017 13:36 
Hors ligne

Inscription: Ven 07/Avr/2017 14:49
Messages: 95
Localisation: Sud Est
Bonjour
j'ai commencer un Casse Brique
je voudrais faire en sorte que ma balle soit collée sur la raquette et si on appuie sur le bouron gauche de la souris on lance la balle
Comment je peux faire ça ? merci

Code:
;------ Break Out ------
;------ PureBasic 5.60, 64 bits  --
;--- Initilisation :
EnableExplicit

If InitSprite()=0 Or InitKeyboard()=0 Or InitMouse() = 0
      MessageRequester("Erreur", "Impossible d'initialiser le jeux  ")
      End
EndIf


;--- Constantes
Enumeration Windows
  #Main_Game
EndEnumeration

Enumeration Game
  #Spr_pad
  #Spr_balle
EndEnumeration

;--- Structure pour la raquette(pad)
Structure Pad
   padX.i
EndStructure   

;--- Structure pour la balle
Structure ball
   ballX.i
   ballY.i
   Speed.i
EndStructure 


;--- Variables
Global Raquette.Pad
Global Balle.ball
Global  Largeur = 800,Hauteur = 600, Event,MouseX,balleColle = #true



;--- Fenetre Jeux
OpenWindow(#Main_Game, 0, 0, Largeur, Hauteur,"", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Main_Game), 0, 0, Largeur, Hauteur)
SetWindowTitle(#Main_Game,"Break Out" +"                          ESC pour quitter le jeu  ")

;---Création de la raquette
CreateSprite(#Spr_pad,200,16)
StartDrawing(SpriteOutput(#Spr_pad))
Box(0, 0, 200,16, RGB(0, 128, 192))
StopDrawing()

;---Création de la balle
CreateSprite(#Spr_balle,32,32)
StartDrawing(SpriteOutput(#Spr_balle))
Circle(10,10,10,RGB(255, 255, 0))
StopDrawing()

balle\ballX = 350
balle\ballY = 560

RGB(255, 255, 0)


;--- Boucle du jeux

Repeat
  Repeat
    Event = WindowEvent()
    Select Event
      Case #PB_Event_CloseWindow
        End
    EndSelect
  Until Event=0
  ClearScreen(RGB(0, 0, 0))
 
  ;--- Affichage de la raquette
  DisplayTransparentSprite(#Spr_pad,Raquette\padX,Hauteur-16)
  ;---Affichage de la balle
  DisplayTransparentSprite(#Spr_balle,Balle\ballX,Balle\ballY)
  MouseX = MouseX()
  ExamineMouse()
  ;--Deplcament de la raquette avec la souris
  If MouseX<=Largeur-200
Raquette\padX=MouseX
Else
Raquette\padX=Largeur-200
EndIf


 
  ExamineKeyboard()
  FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Début d'un casseBrique
MessagePosté: Lun 03/Juil/2017 13:56 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6849
Localisation: IDF (Yvelines)
Presque tout est dans ton code.

■ Si pas clique gauche de la souris
=> La balle suit la raquette : balle\ballX = Raquette\padX

■ SI Clique gauche de la souris
=> la balle est relachée : balleColle = #False
=> Initialisation de la vitesse verticale de balle : balle\Speed = -5

■ Si la balle n'est plus collée
==> La balle est en mouvement

■ Code
Code:
;------ Break Out ------
;------ PureBasic 5.60, 64 bits  --
;--- Initilisation :
EnableExplicit

If InitSprite()=0 Or InitKeyboard()=0 Or InitMouse() = 0
  MessageRequester("Erreur", "Impossible d'initialiser le jeux  ")
  End
EndIf


;--- Constantes
Enumeration Windows
  #Main_Game
EndEnumeration

Enumeration Game
  #Spr_pad
  #Spr_balle
EndEnumeration

;--- Structure pour la raquette(pad)
Structure Pad
  padX.i
EndStructure   

;--- Structure pour la balle
Structure ball
  ballX.i
  ballY.i
  Speed.i
EndStructure 


;--- Variables
Global Raquette.Pad
Global Balle.ball
Global  Largeur = 800,Hauteur = 600, Event,MouseX, balleColle = #True

;--- Fenetre Jeux
OpenWindow(#Main_Game, 0, 0, Largeur, Hauteur,"", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Main_Game), 0, 0, Largeur, Hauteur)
SetWindowTitle(#Main_Game,"Break Out" +"                          ESC pour quitter le jeu  ")

;---Création de la raquette
CreateSprite(#Spr_pad,200,16)
StartDrawing(SpriteOutput(#Spr_pad))
Box(0, 0, 200,16, RGB(0, 128, 192))
StopDrawing()

;---Création de la balle
CreateSprite(#Spr_balle,32,32)
StartDrawing(SpriteOutput(#Spr_balle))
Circle(10,10,10,RGB(255, 255, 0))
StopDrawing()

balle\ballX = 350
balle\ballY = 560

RGB(255, 255, 0)


;--- Boucle du jeux

Repeat
  Repeat
    Event = WindowEvent()
    Select Event
      Case #PB_Event_CloseWindow
        End
    EndSelect
  Until Event=0
  ClearScreen(RGB(0, 0, 0))
 
  ;--- Affichage de la raquette
  DisplayTransparentSprite(#Spr_pad,Raquette\padX,Hauteur-16)
  ;---Affichage de la balle
  DisplayTransparentSprite(#Spr_balle,Balle\ballX,Balle\ballY)
  MouseX = MouseX()
  ExamineMouse()
 
  ;--Deplcament de la raquette avec la souris
  If MouseX<=Largeur-200
    Raquette\padX=MouseX
  Else
    Raquette\padX=Largeur-200
  EndIf
 
  ;--Si la balle est collée alors la balle suit la raquette
  If balleColle = #True
    balle\ballX = Raquette\padX 
  Else
    balle\ballY = Balle\ballY + Balle\Speed
  EndIf
 
  ;-- Clique gauche de la souris
  If MouseButton(#PB_MouseButton_Left) And balleColle = #True
    ;Balle relachée
    balleColle = #False
   
    ;Init vitesse de la balle
    balle\Speed = -5
  EndIf
 
 
  ExamineKeyboard()
  FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)


A toi de gérer les rebonds.

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Début d'un casseBrique
MessagePosté: Lun 03/Juil/2017 14:14 
Hors ligne

Inscription: Ven 07/Avr/2017 14:49
Messages: 95
Localisation: Sud Est
Un grand merci Falsam pour tes conseils


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Début d'un casseBrique
MessagePosté: Lun 03/Juil/2017 14:23 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 27/Oct/2006 12:19
Messages: 1224
Localisation: Calvados (14)
Tonio, regardes dans un de tes précédents messages sous le pseudo JBernard13, celui-ci en l'occurence à adapter en PB 5.6 bien entendu

_________________
Image

Image


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 4 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye