Jeu de voiture à l’ancienne....

Programmation avancée de jeux en PureBasic
Mytic
Messages : 466
Inscription : mer. 25/juil./2007 0:13

Message par Mytic »

Patrick88 a écrit :t'aurais dû mettre un tracteur à la place de la ferrari...
si Enzo voit ça , il va venir te bugger ton micro cette nuit.... :lol: :lol: :lol:

je serais bien incapable d'en faire autant...

pat
Elle ne roule pas à l’essence mais à l’huile d’olive :lol:
Buckethead
Messages : 122
Inscription : jeu. 27/sept./2007 20:25

Message par Buckethead »

Chapeau bas pour le jeu Mytic :)
En + ca me rappel la belle époque...

Dobro: Gaaaaah le buggy boy, quel jeu !!
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Dr. Dri a écrit :Ca me rappelle un début de projet en DB j'avais "perdu" les sprites des véhicules donc je me suis arrêté avant d'avoir un truc jouable... Si tu veux un conseil, utilise les Sprite3D.
Je m'en rappelle très bien de ce projet !!! :D
J'ai des back ups de certains de tes petits projets, mais je n'ai pas trouvés les sources de ce jeu. :?

@Mytic :
Pas mal. Bon corage pour la suite :wink:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

bon je me suis amusé aussi a faire ma route :D

par contre comme je triche un poil, j'aimerai savoir si chez vous l'animation
se passe bien :D

un appuis sur la barre d'espace lance l'animation
un appuis prolongé met la vitesse "a fond"

les touches flechées bougent la route droite-gauche, haut,bas :)


j'utilise des sprites pour faire cette route, et une grosse arnaque pour l'animation :lol: , qui du coup ne prend aucun temps processeur important !!
on peu avoir un truc fluide qui prends tout l'ecran sans soucis (en principe)

bref tout pour reserver le processeur a d'autre fin utile pour un jeu :D
laissez la resolution de 1024*768 !! c'est important !


; by Dobro
; sur une idee de Mytic

posy=700
posx=0
vitess.f=0

Structure bande_clair
  x.l
  Y.l
  pos.l
EndStructure
;Global Dim bande_clair.bande_clair(nb_bandes) ; nombre de bande
Global NewList bande_clair.bande_clair()

Structure bande_fonce
  x.l
  Y.l
  pos.l
EndStructure
Global NewList bande_fonce.bande_fonce()


Enumeration
   #spr_clair
   #spr_fonce
   #spr_clair3D
   #spr_fonce3D
  
EndEnumeration


InitSprite ()
InitSprite3D ()
InitMouse ()

InitKeyboard ()
Global mx.d,my.d
my=50 ; 25 a 89 (50=plat)
mx=0
OpenWindow (0,0,0,1024,768, "test" , #PB_Window_SystemMenu )

OpenWindowedScreen ( WindowID (0),0,0,1024,768,0,0,0)



;************ creation de la bande clair 1****************
CreateSprite ( #spr_clair ,1024,10, #PB_Sprite_Texture )
; gauche=1024/2.6
; droite=1024/28
; bande=gauche+30
StartDrawing ( SpriteOutput ( #spr_clair ))
Box (0,0,1024,10, RGB ($0,$84,$42)) ; l'herbe
Box (300,0,400,10, RGB ($A4,$A4,$A4)) ; la bande
Box (300,0,30,10, RGB ($C7,$C7,$C7)) ; le bord gauche
Box (700,0,30,10, RGB ($C7,$C7,$C7)) ; le bord droit
StopDrawing ()

CreateSprite3D ( #spr_clair3D , #spr_clair )
; ***************************************************

; *********** creation de la bande fonce 1**************
CreateSprite ( #spr_fonce ,1024,10, #PB_Sprite_Texture )
StartDrawing ( SpriteOutput ( #spr_fonce ))
Box (0,0,1024,10, RGB ($0,$84,$42)) ; l'herbe
Box (300,0,400,10, RGB ($79,$79,$79)) ; la bande
Box (300,0,30,10, RGB ($F1,$1F,$1)) ; le bord gauche
Box (700,0,30,10, RGB ($F1,$1F,$1)) ; le bord droit
StopDrawing ()
CreateSprite3D ( #spr_fonce3D , #spr_fonce )
; **************************************************

Global largeur=1024

For i=0 To 40
  cc=cc+1
   AddElement (bande_clair())
  bande_clair()\x=posx+(mx/20)*cc*(i-ttt)
  bande_clair()\Y=posy+bande_clair()\Y+10*i
   AddElement (bande_fonce())
  bande_fonce()\x=posx+(mx/20)*cc*(i-ttt)
  bande_fonce()\Y=posy+bande_fonce()\Y+10*i
Next i

Repeat
   ClearScreen (0)
   ExamineKeyboard ()
   ExamineMouse ()
   If KeyboardPushed ( #PB_Key_Up )
    my = my + 1
     If my>=89
      my=89
     EndIf
   EndIf
   If KeyboardPushed ( #PB_Key_Down )
    my = my - 1
     If my<=25
      my=25
     EndIf
    
   EndIf
   If KeyboardPushed ( #PB_Key_Left )
    mx = mx - 1
     If mx<=-18
      mx=-18
     EndIf
   EndIf
   If KeyboardPushed ( #PB_Key_Right )
    mx = mx + 1
     If mx>=18
      mx=18
     EndIf
   EndIf
   If KeyboardPushed ( #PB_Key_Space )
    vitess.f = vitess.f + 0.5
    lpas.f=0.5
     If vitess>3
      vitess=3
     EndIf
   EndIf
   If KeyboardReleased ( #PB_Key_Space )
    vitess.f = vitess.f -1
   EndIf
   If MouseButton ( #PB_MouseButton_Right )
     End
   EndIf
   ; *****************************************************
  largeur=1024
  
   Debug my
  cc=40
  i=0
  taux=50 ; joue sur la vitesse d'étroitisation de la piste chiffre plus grand= plus large
   ResetList ( bande_clair())
   ResetList ( bande_fonce())
   ForEach bande_clair()
    largeur=largeur+taux
    ZoomSprite3D( #spr_clair3D ,largeur-900,10)
    ZoomSprite3D( #spr_fonce3D ,largeur-900,10)
    
    cc=cc-1
    bande_clair()\x=posx+(mx/50)*cc*cc-((taux/2)*i)+400 ; le 500 recentre
    bande_clair()\Y=posy-(my/10)*cc+i
     Start3D ()
     DisplaySprite3D ( #spr_clair3D ,bande_clair()\x,bande_clair()\Y,255)
     SelectElement (bande_fonce(),40)
     DeleteElement (bande_fonce())
     AddElement (bande_fonce())
    bande_fonce()\x=bande_clair()\x
    bande_fonce()\Y=bande_clair()\Y
    bande_fonce()\pos=bande_clair()\pos
    
     If vitess<0.5
      vitess=0.5
      lpas=0.5
     EndIf
    
    dd.f=dd.f+lpas
     If dd=20
      dd=-vitess
     EndIf
    
    bande_fonce()\Y=bande_fonce()\Y+dd
     DisplaySprite3D ( #spr_fonce3D ,bande_clair()\x,bande_fonce()\Y,255)
     Stop3D ()
    i=i+1 : If i=(41):i=0: EndIf
   Next
   FlipBuffers ()
   ClearScreen ( RGB (0,0,0))
  Event = WindowEvent ()
   Delay (5)
Until Event = #PB_Event_CloseWindow
ReleaseMouse (1)
ShowCursor_ (1)
End
Dernière modification par Backup le jeu. 04/oct./2007 12:08, modifié 3 fois.
Avatar de l’utilisateur
Huitbit
Messages : 940
Inscription : jeu. 08/déc./2005 5:19
Localisation : Guadeloupe

Message par Huitbit »

Là oui, je sens le vent dans mes cheveux...heu dans mon bonnet...
:lol: :lol:
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Pas mal , pas mal.
ça roule pour moi aussi.
Sur la machine du boulot ça utilise 61 à 69 % de l'UC pour info.

Y'a meme les cotes et les descentes 8)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Kwai chang caine a écrit :Pas mal , pas mal.
ça roule pour moi aussi.
Sur la machine du boulot ça utilise 61 à 69 % de l'UC pour info.

Y'a meme les cotes et les descentes 8)
ou voit tu les pourcentages dans windows ? 8O
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Bah, je fais CTRL + ALT + SUP
Puis, Je regarde en bas du gestionnaire des taches.
C'est marqué UC util : x%
Autrement je clique aussi sur performance et, je regarde le graphic des performances.
Je m'en sert beaucoup au boulot car les machines sont limite et en plus pas discrete :?
Le ventilo se met à soufler d'enfer, et tous mes "voisins" savent que la machine est en train de souffrir :?
Et puis aussi, quand je fait un prg qui "veille", avec une boucle "SLEEP et DoEvents" pour etre sur qu'il ne prenne pas trop de ressource et qu'il en reste à l'utilisateur, c'est la moindre des choses. :D
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

ha oui ! , mais la c'est différent :D
ce que tu lis n'est pas le pourcentage de mon prg, c'est le pourcentage Global, de toute les taches qui tourne sur ton prg !!

le pourcentage de mon prg (est-ce bien un pourcentage d'ailleurs ?)

tu le vois dans la liste des taches, un prg purebasic porte le nom de
Purebasicxxxxx les "xxx" etant des chiffres !!

et chez moi mon prg prend dans la colonne "Processeur"
un chiffre entre 06 et 08 !! (sans debugger actif)
c'est pas les 60 % que tu annonce :lol:

tu m'a fais peur :lol: :D
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Oui oui, je le savais ça, une fois n'est pas coutume :wink:
Je suis désolé de t'avoir fait peur, d'habitude c'est moi qui est toujours peur :D
Mais, je vais peut etre te refaire peur, et que cela ne gache pas notre amitié :D

Dans la liste des processus, mois j'ai bien Purebasic_compi à 63% :cry: et des que j'eteint ton prog plus rien, enfin 1 à 2%, normal quoi.

Mais ce qui est encore plus dingue, c'est que ça me bloque ma souris dans la fenetre de ton appli, je peux plus en sortir, j'ai aussi un mal fou à l'arreter.
Enfin ce que j'en dit, c'est evidemment pour t'aider :oops:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Kwai chang caine a écrit :Dans la liste des processus, mois j'ai bien Purebasic_compi à 63%
tu as bien le debugger OFF ??

d'autre part pourquoi chez toi les prg purebasic porte le nom de Purebasic_Compi ??? , ne serait-ce pas le compillateur ça ??

un prg Purebasic porte le nom de
Purebasicxxx xxx etant un nombre Aleatoire !!! ???? :)

tu n'as pas XP ??
parceque sous XP on a pas les Pourcentage par Taches active, mais seulement pour la globalité des taches !!
Mais ce qui est encore plus dingue, c'est que ça me bloque ma souris dans la fenetre de ton appli, je peux plus en sortir, j'ai aussi un mal fou à l'arreter.
Enfin ce que j'en dit, c'est evidemment pour t'aider :oops:
pour arreter le prg, il faut cliquer avec la souris bouton Droit

c'est normal !! un prg en Ecran (meme fenetré) prend le control de la souris !!
celle-ci n'appartient plus a Windows, mais a l'application Screen !!
c'est pareil pour tout les Jeux, faire cohabiter un ecran et des appli-Windows (gadget) est tres dificile avec le purebasic !
mais aussi avec d'autres langage ....

c'est pour cela qu'il y a deux conventions, "usuelle", pour quitter un prg en ecran Screen , soit on appuis sur ESC (Echap) , soit on essaye le bouton Droit de la souris !!
ce sujet a déja ete abordé ici meme sur le forum !! :)

autre chose :
vu comment fonctionne mon prg, je suis sur, qu'il ne prends pas 60% du system !! :)
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

c'est normal !! un prg en Ecran (meme fenetré) prend le control de la souris !!
Comme dab, je ne le savais pas 8O
On se demande ce que j'apprend tous les jours :oops:
Il faut dire aussi, que je n'aime pas trop les jeux depuisma plus tendre enfance, donc les application console, je connais encore moins que le reste, alors c'est pour dire :lol:
tu n'as pas XP ??
Non ici c'est W2000
tu as bien le debugger OFF ?
Bah oui il me semble :roll:

Comme dab, j'suis pas comme les autres, mais c'est pas grave, comme je te l'ai deja dit c'est pour t'aider, mais j'ai plutot l'impression que je te retarde :cry:

Image
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

c'est a rien n'y comprendre !!

regarde sous XP :)

Image
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Alors, si meme toi, t'y comprend rien ......
ça vient peut etre de ma bécane.

L'important c'est que je sois le seul :wink:
Mytic
Messages : 466
Inscription : mer. 25/juil./2007 0:13

Message par Mytic »

@Dobro
Excellent Excellent. :D
T’as version est nettement mieux, sauf le coté pixel de la chose…
Tu devrais essayer de trouver un moyen d’adoucir tout ça… :wink:
Sinon pour le reste Bravo…

:)
Répondre