Page 4 sur 4

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

Publié : sam. 28/janv./2012 22:51
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.

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

Publié : dim. 29/janv./2012 0:48
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:

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

Publié : dim. 29/janv./2012 1:50
par G-Rom
Tout les id pb pointent vers des structures de toute façon ;)

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

Publié : dim. 29/janv./2012 10:10
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 ?

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

Publié : dim. 29/janv./2012 11:02
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).

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

Publié : mer. 01/févr./2012 10:38
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

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

Publié : mer. 01/févr./2012 11:37
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)

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

Publié : mer. 01/févr./2012 13:24
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)

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

Publié : mer. 01/févr./2012 14:08
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 !

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

Publié : ven. 03/févr./2012 4:12
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

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

Publié : mar. 07/févr./2012 11:45
par TazNormand
Alors JB13, t'en es où ?

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

Publié : mar. 07/févr./2012 20:35
par SPH
Il m'a dit qu'il allait coder un half life. heu non, je rigole :mrgreen:

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

Publié : jeu. 09/févr./2012 16:10
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.

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

Publié : sam. 11/févr./2012 10:28
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.