juste une petite question svp
juste une petite question svp
bonjour
juste une petite question
je vois que la plus des jeux on est obliger de passer en plein ecran
mais comment creer un jeux pour qu'utlise le system de fenetre de window avec menu ...
et je recherche un tutorial pour crée un casse brique ...
bonne week end
bernard13
juste une petite question
je vois que la plus des jeux on est obliger de passer en plein ecran
mais comment creer un jeux pour qu'utlise le system de fenetre de window avec menu ...
et je recherche un tutorial pour crée un casse brique ...
bonne week end
bernard13
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Ca fais plaisir de voir que tu es toujours copain avec l'aide
OpenWindowedScreen


OpenWindowedScreen


Dernière modification par Le Soldat Inconnu le sam. 12/mars/2005 11:03, modifié 1 fois.
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Utilise OpenWindowedScreen()
Exemple :
Exemple :
Code : Tout sélectionner
InitSprite()
OpenWindow(1, 0, 0, 800, 600, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "WindowedScreen")
CreateMenu(1, WindowID())
MenuTitle("Fichier")
MenuItem(1, "Quitter")
OpenWindowedScreen(WindowID(), 0, 0, 800, 600, 0, 0, 0)
Repeat
; Partie du code pour la fenetre
wEvent = WindowEvent()
If wEvent
Select wEvent
Case #PB_Event_Menu
Select EventMenuID()
Case 1
Quit = #True
EndSelect
Case #WM_Close
Quit = #True
EndSelect
EndIf
; Partie du code pour le windowedscreen
ClearScreen(80, 120, 255)
StartDrawing(ScreenOutput())
Box(Random(800), Random(600), Random(800), Random(600), Random(#White))
StopDrawing()
FlipBuffers()
Until Quit = #True
End
-
- Messages : 1092
- Inscription : mer. 28/janv./2004 16:22
- Localisation : 76
- Contact :
Pour le déplacement de la balle, il te suffit pour faire le rebond, de faire :
Sachant que la droite de déplacement est y=ax+b, pour faire repartir la balle, il te faut simplement faire y=-ax+b (fonctions affines)
Sachant que la droite de déplacement est y=ax+b, pour faire repartir la balle, il te faut simplement faire y=-ax+b (fonctions affines)
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL

Voilas, je t'ai bricoler ça en une petite heure
Code : Tout sélectionner
; Auteur : Cederavic
; Version PB : 3.93
; Date : 12/03/05
; Description : un casse brique basic commenté
; Initialisation de DirectX
If InitSprite() = 0
; Si l'initialisation echoue, on ferme
MessageRequester("Casse Brique", "Impossible d'initialiser DirectX", 0)
End
EndIf
; déclaration des procédures
Declare InitBox()
; Position de la raquette
Player.POINT
; Position de la balle
BallPos.POINT
; Direction de la balle
BallDir.POINT
; Position du curseur
Cursor.POINT
; liste des briques
Dim BoxList(10, 15)
; Ouverture de la fenetre principale
If OpenWindow(1, 0, 0, 800, 617, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Casse Brique")
; Création du menu
If CreateMenu(1, WindowID())
MenuTitle("Fichier")
MenuItem(1, "Nouvelle partie")
MenuItem(2, "Quitter")
Else
;Si la creation du menu echoue, on ferme
MessageRequester("Casse Brique", "Impossible de créer le menu", 0)
End
EndIf
; Ouverture de l'ecran
If OpenWindowedScreen(WindowID(), 0, 0, 800, 600, 0, 0, 0) = 0
; Si l'ouverture de l'écran echoue, on ferme
MessageRequester("Casse Brique", "Impossible d'ouvrir l'écran", 0)
End
EndIf
; Création des sprites
CreateSprite(0, 80, 10) ; Le joueur
StartDrawing(SpriteOutput(0))
DrawingMode(0)
Box(0, 0, 80, 10, RGB(40, 255, 80))
DrawingMode(4)
Box(0, 0, 80, 10, RGB(32, 32, 32))
StopDrawing()
CreateSprite(1, 20, 20) ; La balle
StartDrawing(SpriteOutput(1))
DrawingMode(0)
Circle(10, 10, 10, RGB(160, 160, 40))
DrawingMode(4)
Circle(10, 10, 10, RGB(32, 32, 32))
StopDrawing()
CreateSprite(2, 80, 20) ; Une brique
StartDrawing(SpriteOutput(2))
DrawingMode(0)
Box(1, 1, 78, 18, RGB(255, 80, 40))
DrawingMode(4)
Box(1, 1, 78, 18, RGB(32, 32, 32))
StopDrawing()
; Positionement de la balle
BallPos\x = 400
BallPos\y = 500
BallDir\y = 1
; Boucle principale
Repeat
; Partie du code pour la fenetre
wEvent = WindowEvent()
If wEvent
Select wEvent
; L'utilisateur choisi un menu
Case #PB_Event_Menu
Select EventMenuID()
; Menu Nouvelle partie
Case 1
; Initialisation des briques
InitBox()
Play = #True
; Positionement de la balle
BallPos\x = 400
BallPos\y = 500
BallDir\y = 1
; Menu Quitter
Case 2
Quit = #True
EndSelect
; L'utilisateur ferme la fenetre
Case #WM_Close
Quit = #True
EndSelect
EndIf
; Partie du code pour le windowedscreen
; Récuperation de la position du curseur
GetCursorPos_(@Cursor)
; Positionnement du joueur
Player\x = Cursor\x - WindowX()
; si le joueur sort de l'écran, on le repositionne
If Player\x < 40 : Player\x = 40 : EndIf
If Player\x > 760 : Player\x = 760 : EndIf
; Gestion de la balle
; Deplacement suivant la direction si la partie est lancée
If Play = #True
If BallDir\x = 0
BallPos\x + 2
Else
BallPos\x - 2
EndIf
If BallDir\y = 0
BallPos\y + 2
Else
BallPos\y - 2
EndIf
EndIf
; Collision avec les bords de l'ecran
If BallPos\x < 11
BallPos\x = 11
BallDir\x = 0
EndIf
If BallPos\x > 795
BallPos\x = 795
BallDir\x = 1
EndIf
If BallPos\y < 11
BallPos\y = 11
BallDir\y = 0
EndIf
If BallPos\y > 595
Play = #False
EndIf
; Collision avec le joueur
If SpritePixelCollision(1, BallPos\x - 10, BallPos\y - 10, 0, Player\x - 40, 590)
BallDir\y = 1
EndIf
ClearScreen(80, 120, 255)
Win = #True
; Affichage des briques
For x = 0 To 9
For y = 0 To 15
; Collision avec la brique si elle existe
If BoxList(x, y) = 1
If SpritePixelCollision(1, BallPos\x - 10, BallPos\y - 10, 2, x * 80, y * 20)
If BallDir\y = 0
If BallPos\x > x * 80 + 80
BallDir\x = 0
ElseIf BallPos\x < x * 80
BallDir\x = 1
Else
BallDir\y = 1
EndIf
BoxList(x, y) = 0
ElseIf BallDir\y = 1
If BallPos\x > x * 80 + 80
BallDir\x = 0
ElseIf BallPos\x < x * 80
BallDir\x = 1
Else
BallDir\y = 0
EndIf
BoxList(x, y) = 0
EndIf
EndIf
EndIf
; si la brique existe on l'affiche
If BoxList(x, y) = 1
Win = #False
DisplayTransparentSprite(2, x * 80, y * 20)
EndIf
Next
Next
; Si win = #True c'est que toutes les briques sont detruite
If Win = #True
Play = #False
EndIf
; Affichage du joueur
DisplayTransparentSprite(0, Player\x - 40, 590)
; Affichage de la balle
DisplayTransparentSprite(1, BallPos\x - 10, BallPos\y - 10)
FlipBuffers()
Until Quit = #True
; Si l'ouverture de la fenetre principale echoue, on ferme
Else
MessageRequester("Casse Brique", "Impossible d'ouvrir la fenetre principale", 0)
End
EndIf
; Fermeture du programme
End
; Initialisation des briques
Procedure InitBox()
For x = 0 To 10
For y = 0 To 15
BoxList(x, y) = Random(1)
Next
Next
EndProcedure