qui peux me donner quelques cours pour la création de jeux

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: qui peux me donner quelques cours pour la création de je

Message par G-Rom »

non , windows x64 , offset 32 & 36 pour la taille, ce qui confirme que PB sauvegarde les tailles ;)
l'offset changera d'une architecture à l'autre.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: qui peux me donner quelques cours pour la création de je

Message par Backup »

bon , ben comme ça , c'est clair :)
on a appris un truc de plus :)
comment se passer de SpriteWidth(#Sprite) et utiliser un peek a la place :lol:
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: qui peux me donner quelques cours pour la création de je

Message par G-Rom »

Tout les id pb pointent vers des structures de toute façon ;)
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: qui peux me donner quelques cours pour la création de je

Message par blendman »

si j'ai bien compris spritewidth()#sprite) ne recalcule pas la taille du sprite, il ne fait que renvoyer la taille précalculé (sans dote lors du chargement) du sprite ?
C'est bien ça ?

Et c'est le cas pour d'autres fonctions ?
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: qui peux me donner quelques cours pour la création de je

Message par G-Rom »

Comment veut tu calculer une taille? Ce n'est qu'une simple information. D'autres type d'objet PB doivent garder quelques infos, mais pas toujours, par exemple une texture pb ne conserve pas la taille (ogre le fait deja).
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: qui peux me donner quelques cours pour la création de je

Message par TazNormand »

Septembre 2004 : http://www.purebasic.fr/french/viewtopi ... 014#p14014

JB13, si tu connais tous ces langages, tu devrais pouvoir t'en sortir tout seul, les notions de bases restent les mêmes.

Tu n'y mets pas du tien, désolé d'avoir l'air agressif, mais j'ai regardé tes messages (enfin en diagonale), et j'ai aussi fait quelques recherches sur le forum, et normalement tu devrais tout ce dont tu as besoin, et au pire, aller sur le forum anglais.

Je vais quand même regarder si je peux pas amorcer un bout de code...

EDIT : j'ai trouvé des choses à toi :
http://www.purebasic.fr/french/viewtopic.php?f=1&t=8893
http://www.purebasic.fr/french/viewtopic.php?f=1&t=8939
http://www.purebasic.fr/french/viewtopic.php?f=1&t=8960
http://www.purebasic.fr/french/viewtopic.php?f=1&t=9382
http://www.purebasic.fr/french/viewtopic.php?f=1&t=9465
Image
Image
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: qui peux me donner quelques cours pour la création de je

Message par TazNormand »

4 raquettes "contrôlables" à la souris. J'ai repris un de tes codes (cf mon msg précédent)

Code : Tout sélectionner

;*****************************************
;* Un bout de code  pour apprendre la 2D *
;*****************************************
; on initialise le sprite,le clavier et la souris 
InitSprite()
InitKeyboard()
InitMouse()
; Definition de la constante pour le curseur 
Enumeration
  #Top
  #Right
EndEnumeration 

ExamineDesktops()
DskW=DesktopWidth(0)
DskH=DesktopHeight(0)
DskD=DesktopDepth(0)

; Creation de l'ecran 



OpenScreen(DskW,DskH,DskD," JBNoid 0.01")


; Creation d'un simple sprite pour le cuseur 
CreateSprite(#Top,200,16)
CreateSprite(#Right,16,200)

StartDrawing(SpriteOutput(#Top))
  Box(0,0,200,16,RGB(255,255,255))
StopDrawing()
StartDrawing(SpriteOutput(#Right))
  Box(0,0,16,200,RGB(255,255,255))
StopDrawing()

  
  ;Boucle principale 
  
  Repeat    
    ClearScreen(RGB(0,0,0))
    MouseX=MouseX()
    mouseY=MouseY()
    
    ; Gauche-Droite
    ; Enlever la largeur de la "raquette" pour ne pas sortir de l'écran
    If MouseX<=DskW-200      
     PosX=MouseX
    Else
     PosX=DskW-200
   EndIf
   
   ; Haut-Bas
   ; Idem penser à enlever la hauteur du sprite pour ne pas sortir de l'écran
   If MouseY<=DskH-200
     posY=mouseY
   Else
     posY=DskH-200
   EndIf
   
    StartDrawing(ScreenOutput())
      DrawText(0,0,"MouseX : "+Str(MouseX))
      DrawText(0,0,"MouseY : "+Str(MouseY))
    StopDrawing()
    ExamineKeyboard()
    ExamineMouse()
    ; Affiche raquette en haut et en bas
    DisplayTransparentSprite(#Top,PosX,DskH-16) ; 16 = hauteur du sprite
    DisplayTransparentSprite(#Top,PosX,0)
    
    ; Affiche à droite et à gauche
    DisplayTransparentSprite(#Right,0,PosY)
    DisplayTransparentSprite(#Right,DskW-16,PosY) ; 16 = hauteur du sprite
   FlipBuffers()
  Until KeyboardPushed(#PB_Key_Escape)
Image
Image
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: qui peux me donner quelques cours pour la création de je

Message par TazNormand »

4 raquettes... plus une balle qui rebondit diagonalement.

A faire :
  • Détection de collision avec les raquettes
    sortie de l'écran = perdu
    gestion de points
    angle de renvoi en fonction de l'endroit sur la raquette où tape la balle
Optimisations :
  • Utilisation des structures
    autres ?
Le code :

Code : Tout sélectionner

;*****************************************
;* Un bout de code  pour apprendre la 2D *
;*****************************************
; on initialise le sprite,le clavier et la souris 
InitSprite()
InitKeyboard()
InitMouse()
; Definition de la constante pour le curseur 
Enumeration
  #Top
  #Right
  #Balle
EndEnumeration 

; Résolution de votre écran
ExamineDesktops()
DskW=DesktopWidth(0)
DskH=DesktopHeight(0)
DskD=DesktopDepth(0)

; Creation de l'ecran 
OpenScreen(DskW,DskH,DskD," JBNoid 0.01")


; Creation d'un simple sprite pour le cuseur 
CreateSprite(#Top,200,16)
CreateSprite(#Right,16,200)

StartDrawing(SpriteOutput(#Top))
  Box(0,0,200,16,RGB(255,255,255))
StopDrawing()
StartDrawing(SpriteOutput(#Right))
  Box(0,0,16,200,RGB(255,255,255))
StopDrawing()

; sprite "Balle"
CreateSprite(#Balle,16,16)
StartDrawing(SpriteOutput(#Balle))
  Circle(7,7,7,RGB($00,$FF,$FF))
StopDrawing()

; Position aléatoire de la balle dans un premier temps, dans un carré central
; à l'écran pour ne pas démarrer avec une balle trop proche d'une raquette
balleX=Random(DskW/2)+(DskW/4)
balleY=Random(DskH/2)+(DskH/4)

; "Pas"(=Step) Sens de mouvement par défaut de la balle
sensX=4
sensY=4

  ;Boucle principale 
  
  Repeat    
    ClearScreen(RGB(0,0,0))
    MouseX=MouseX()
    mouseY=MouseY()
    
    ; Gauche-Droite
    ; Enlever la largeur de la "raquette" pour ne pas sortir de l'écran
    If MouseX<=DskW-200      
     PosX=MouseX
    Else
     PosX=DskW-200
   EndIf
   
   ; Haut-Bas
   ; Idem penser à enlever la hauteur du sprite pour ne pas sortir de l'écran
   If MouseY<=DskH-200
     posY=mouseY
   Else
     posY=DskH-200
   EndIf
   
   ; Gérer mouvement de la balle, on ne s'occupe pas encore des raquettes
   balleX=balleX+sensX
   balleY=balleY+sensY
   If balleX>=dskW-16 Or balleX<=0
     sensX*-1 ; inverser le sens
   EndIf
   If balleY>=dskH-16 Or balleY<=0
     sensY*-1 ; inverser le sens
   EndIf   
     
    StartDrawing(ScreenOutput())
      DrawText(20,20,"MouseX : "+Str(MouseX))
      DrawText(20,40,"MouseY : "+Str(MouseY))
      DrawText(20,60,"balleX : "+Str(balleX))
      DrawText(20,80,"balleY : "+Str(balleY))
      StopDrawing()
      

    ; Affiche raquette en haut et en bas
    DisplayTransparentSprite(#Top,PosX,DskH-16) ; 16 = hauteur du sprite
    DisplayTransparentSprite(#Top,PosX,0)
    
    ; Affiche à droite et à gauche
    DisplayTransparentSprite(#Right,0,PosY)
    DisplayTransparentSprite(#Right,DskW-16,PosY) ; 16 = hauteur du sprite
    
    ; Balle
    DisplayTransparentSprite(#Balle,balleX,balleY)
    
    FlipBuffers()
    
    ExamineKeyboard()
    ExamineMouse()
  Until KeyboardPushed(#PB_Key_Escape) Or MouseButton(#PB_MouseButton_Left)
Image
Image
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: qui peux me donner quelques cours pour la création de je

Message par Ar-S »

Allez JB13 et autres qui veulent se lancer, le code de Taz est très compréhensif. A vous de continuer ! Lancez vous !
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: qui peux me donner quelques cours pour la création de je

Message par SPH »

Ar-S a écrit :Allez JB13 et autres qui veulent se lancer, le code de Taz est très compréhensif. A vous de continuer ! Lancez vous !
+1 : allez jb13

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: qui peux me donner quelques cours pour la création de je

Message par TazNormand »

Alors JB13, t'en es où ?
Image
Image
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: qui peux me donner quelques cours pour la création de je

Message par SPH »

Il m'a dit qu'il allait coder un half life. heu non, je rigole :mrgreen:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: qui peux me donner quelques cours pour la création de je

Message par TazNormand »

@JB13 : Je réponds ici à ton MP.

Tu me dis que tu n'as rien compris !!! J'ai repris une partie d'un de tes "anciens" codes, donc tu devrais en comprendre au moins cette partie.

C'est quoi que tu ne comprends pas exactement.

bon, je pars au ski (désolé à ceux qui restent chez eux) dans la nuit de vendredi à samedi, et je n'emmène pas d'ordi, donc je ne pourrais lire les commentaires sur ce site que demain et dans une semaine.

A mon retour, je ferai un semblant de tuto pour créer pas à pas un clone de pong. Mon code ne sera surement pas ce qu'il y aura de plus optimisé, mais devrait donner quelques bases.
Image
Image
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: qui peux me donner quelques cours pour la création de je

Message par Mesa »

Pour commencer à partir de zéro, il faut télécharger ça :http://www.mediafire.com/?kbhu73aj50pye7a
le lien fonctionnait encore aujourd'hui.

Ce sont les exemples de code du livre en anglais de 2005 de John P. Logsdon's book "Programming 2D Scrolling Games" pour purebasic 3.93. mais traduit en PB4.51 (compatible 4.61)
Le sommaire du livre se trouve ici http://www.krylarskreations.com/pb_book.html

Les exemples commencent très simplement et sont compréhensible sans le livre.


(A voir http://www.dbfinteractive.com/forum/ind ... 9#msg70229)

Un tuto en français pour un rpg en PB là
http://www.games-creators.org/wiki/Pure ... r_un_RPG2D

Pour la 2D et la 3D voir ici

http://www.games-creators.org/wiki/Pure_Basic

Mesa.
Répondre