bon alors voila j´ai fais plein de jeu sur casio 35 et je suis afreusement brimé par la vitesse ( plus proche de la limace tetraplegik ke de la formule 1)
par exemple:
j´ai fait un jeu avec deux chato ki se tire dessu ( on rentre un angle et une force et le prog crée une parabole basée sur les ekwation de trajectoir d´un objet en chute libre de terminal)
le prog trace pixel par pixel la courbe ( et verifi a chaque fois si il n´y a pas eu impact avec le decors ou le chato adverse)
le probleme c´est ke ce tracage prend environ 10 seconde pour une courbe de 4 cm
donc j´ai mis 4 heur a faire ce prog et le plaisir de joué et réduit a néan par l´attente entre chak coup ( j´y ai joué deux fois et ca me saoul deja)
c´est pourkoi j´ai decidé d´abandonner la calculette pour faire des jeu sur pc
pour les jeu en text pas de probleme
mais j´ai peur qu´en passant a des jeu graphik le probleme soit inverse ke sur caltoch
le seul moment ou j´ai vu réflechir l´ordi pendant 2 seconde c´est avec un prog ki di si un nombre ke je lui donne est premier ( il prend le nombre doné et le divise par tout les nombre inferieur a lui)
j´ai rentré 36527 et il a reflechi environ deux seconde avant sa réponse
donc j´imagine qu´avec mon jeu de chateau le tracé de la courbe sera fini en moins de temps k´il n´en faut pour aprecier le jeu ( peut-etre meme moin de temps k´il n´en faut pour voir la trajectoir du tir)
donc je voulait savoir si il y avé moyen de cadenser un programe pour limiter sa vitesse d´execution
( je programe en pascal)
merci
Tu dois travailler avec un timer. En général, on utilise une fonction qui te renvoie le temps en milliseconde écoulé depuis le démarrage de la machine. ( Fonction QueryPerfomanceTimer en C ) .
Ensuite, tu dois te debrouiller pour derouler ton jeu en te calant sur le timer.
Par exemple, pour avancer un personnage tu dois exprimer son déplacement en cases par seconde et non pas en cases par frame.
Exemple :
Vitesse 5 Cases/Frame:
à 50 FPS : Le perso avance de 250 Cases par seconde.
à 100 FPS : Le perso avance de 500 Cases par seconde.
On s´apercoit que selon la vitesse de la machine, le jeu aura un comportement different.
Par contre:
Vitesse de 5 Cases/Seconde
à 50 FPS: Le perso avance de 5 Case/Seconde.
à 100 FPS: Le perso avance de 5 Cases/Seconde.
Dans ce cas, le jeu sera cadencé et sera jouable sur tout type de machine.
Uhm . .. je ne connais pas le pascal, mais 2 solutions s´offrent à toi :
Mettre une boucle, genre for qui compte un certains nombre d´itérations sans rien faire avant de redonner la main à la suite du programme.
L´avantage c´est que ca se met en place très facilement.
Le problème, c´est que si tu resort ton jeu dans 20 ans ( on peut rêver
) , tout ira beaucoup trop vite car la puissance des ordis aura augmenté ( essaye de jouer à Theme Park 1 sur ton ordi ) .
Sinon, la méthode plus fine consiste à récupérer l´horloge et à faire des boucles de manière à faire patienter le jeu une seconde ( par exemple ) avant de calculer le prochain point.
Pour ma réponse 2, c´est pas des boucles, c´est un if, sorry ![]()
si tu veux optimiser : vois les opérations couteuses.
tu travailles en virgule flottante : sache que la gestion des entiers est bien plus rapide ( quoiqu´avec le PC actuels...)
y´ aun autre truc : évite a tout prix de mettre des for dans des for, y´a plein d´astuces pour ça.
les tests de collision par exemple, peut etre que tu peux les rendre moins couteux en considérant non pas le chateau, mais la boite englobante du chateau ( un rectangle qui le caractériserait), moisn de tests a faire : 4 seulement, vérifier si x1<x-balle<x2 et y1<y-balle<y2 ( avec x1,y1 x2,y2 les coords de la boite)
test de collision : si le chateau est gros, tu peux te permettre de faire un test de collision non pas toutes les frames, mais 1 frame sur 3...
etc...
apres, tout dépend de ton programme, mais y´a moultes optimisations je pense
pour tt le monde
merci bcp
pour jean Y²
je supose ke tes sugestion d´optimisation sont pour mon program sur caltoch
mais les calcul de colision se font de la maniere suivante:
on a :kan y=0
sol
kan x=100
sorti du terrain
les deux chato son au sol donc ils n´ont k´une coordonée sur l´axe X ( y= 0)
a chaque pixel de la trajectoire le prog verifie ceci:
![]()
-si x(pixel)>100 alors goto ![]()
-si y(pixel)<0 alors
si x(pixel) aparrtient a [x(chato)-2; x(chato)+2] alors goto
sinon goto ![]()
-sinon goto
= loupé
= touché
je sais pas si je peu fair plus soft com verification
AAAAAAAAAAAAAAHHHHHHHHHHH ! !!!!!!!!!!!!!!!!!!!
DES GOTO PARTOUT ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!
![]()
sinon j´ai une kestion:
si je peut me servir de l´orloge de l´ordi
apelon une procedure ´orloge´ ki donne une variable t ( le temps depuis le debut du prog en seconde)
on peut faire une boucle pour fair patienter le prog 5 seconde comme ca:
le temps commence a défiler
t recoit 0
tant ke t< 5 faire:
t recoit ´orloge´
fin tant ke.
bla bla bla ( suite du programe)
lag it
c´est une casio 35 je trouve ke les goto sont tres pratik pour passer d´un endroit a un otre dans un programe
il fo juste une sorte d´aiguillage a la fin de chake fonction ou procedure
T´en fait pas, j´en faisait usage à outrance sur ma 83 ![]()
Mais avec le C++, plus besoin ![]()
j´ai jamé fait de c++
apres un an en deug info j´ai fé ke du turbo pascal et du delphy ( mais bon c´est le meme langage)
De toutes facons, avec les langages de programmation procéduraux et/ou orienté objet, il est facile de se passer de goto ( fonctions, classes, . .. )
bon tu a l´air de t´y connaitre donc
j´ai un autre probleme:
je supoz k´a la fac on va pas faire ke du pascal
je suis pas trop mauvais en logik et algorythme
il me fodrait un boukin pour aprendre le c++ ( boucle fonction procedure affichage)
Tiens, je te donne un extrait de la faq :
Différence entre C et C++ ? par jeanYvesYves
Le C est un langage de programmation qui permet de programmer n´importe quel logiciel ou jeu. C´est un langage dit " procédural ( 2e génération)". Sa maitrise demande de savoir gérer proprement sa mémoire, puisque l´on manipule directement la mémoire avec ce langage. C´est tres puissant, tres rapide, mais demande parfois de vraiment se casser la tête : mais croyez moi que ça en vaut le coup !
Le C++ est une extention du C, un C amélioré. Il contient entre autre ce qu´on appelle la POO ( programmation orienté objet), ce qui fait de lui un langage " objet ( 3e génération)". L´avantage de cela est que l´on n´a plus a gérer directement la mémoire, il simplifie la vie du programmeur.
Certains voudront s´attaquer directement au C++ sans passer par le C, c´est TRES DECONSEILLE. C´est comme jouer a Frozen Throne sans jamais avoir touché à " reign of chaos" ( Warcraft 3).
Certains, comme moi, sont avant tout des programmeus de C, c´est pour cela que je dis que je programme en C/C++ car j´utilise les avantages des 2 langages, j´aime bien gérer des objets, mais j´aime bien toucher moi meme a la mémoire.
Quels bouquins? par Lag-it
Si vous n´avez jamais programmé auparavant ou que vous ne savez pas encore si la programmation vous plaira, inutile d´acquérir un livre de 2500 pages qui risque de vous dégouter.
Optez plutot pour des petits bouquins qui vous donneront un premier apercu du langage.
En ce sens, les livres de la collection " Campus Press" sont intéressant, nottament " Le langage C" qui donne toutes les bases du C pour 10 € seulement.
Dans la même collection vient " Le langage C++", qui aborde la programmation orienté objet. Cependant, il est recommandé d´avoir quelques notions de C pour l´aborder, car celles si ne sont données que rapidement ( et généralement peu approfondies ) . 10 € également, je recommande de l´acheter avec " Le langage C".
Une collection intéressante pour les débutants ou ceux qui ne veulent pas passer 60 € dans l´achat d´un bouquin.
Viennent ensuites les livres plus imposants, de plus de 1000 pages qui, malgrés un prix plus élévé, donnent d´avantage de connaissances de bases mais aussi de techniques avancés de la programmation :
" Comment programmer en C++, 3ème édition
Introduction à la conception orientée objet avec l´UML"
Un excellent livre pour le débutant et le programmeur plus confirmé désirant se lancer dans l´aventure C++. Il donne les bases et les notions avancées du langage C++ ( partie procédurale héritée du C ) et de la programmation orientée objet ( C++ ) .
Son introduction à l´UML permet un premier apercu de ce langage de modélisation de systèmes orientés objet.
Il est très complet et très accessible. Une valeur sure.
Sur le CD-Rom inclut figure Visual C++ 6.0 Introductory Edition ( une demo illimitée dans le temps ) qui permet de se mettre à écrire du code tout de suite.
( NOTE : La 4° édition est déjà sortie en anglais, mais elles n´apporte que quelques nouveautés, le reste du livre étant identique à la 3° édition )
" Le langage C++"
De Bjarne Stroustrup ( créateur du C++ )
Editions Campus.
Quel compilateur pour le C++ ? par Lag-it
Aujourd´hui, la plupart des compilateurs C/C++ sont regroupés au sein d´un même logiciel ( il n´existe plus de compilateur spécifique au C )
En règle générale, si vous recherchez un compilateur pour un langage particulier, rendez vous sur :
http://www.compilers.net/
Ce site regorge de liens vers des compilateurs gratuits ou payants sur un nombre impressionant de plateformes ( PC, Mac, Linux, . . . ) . La majeure partie des langages de programmation existants sont présents : C, C++, Basic, Java, . . .
http://www.bloodshed.net/devcpp.html
Site de Dev C++, un IDE/Compilateur gratuit C/C++ pour PC.
http://msdn.microsoft.com/visualc/
www.microsoft.com/france/visualc/
La page officielle ( ang et fr ) sur le compilateur/IDE payant Visual C++ de Microsoft.
" Comment programmer en C++, 3ème édition"
C´est celui que je recommande ![]()
kelle edition kel auteur????