CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Mon tutorial C++ en construction

dnob700
dnob700
Niveau 10
15 mars 2005 à 21:11:37

je viens d´essayer, de compiler le futil, et ça marche parfaitement.

mais à chaque fois que j´exécute futils ( pour générer une police), à la fin, VS me signale que la pile est corrompu autour de la variable temp.

je ne sais pas d´où ça peut venir, mais ça fait pas très propre.
bien sur en release il ne dit rien, mais c´est parce qu´il ne vérifie pas.

JeanYvesYves
JeanYvesYves
Niveau 10
15 mars 2005 à 21:18:29

tu veux dire au niveau de la variable buf ?
il est vrai que c´est super crade... hem ! mea culpa ! mais bon.
a la rigueur, meme pas besoin de la mettre en static... Mais c´était pour gagner de la vitesse, en ne désallouant pas : simuli de variables globale en fait.
Bref...

Bon sinon, tant mieux si ça compile !
As tu essayé sous . net ?
Car moi je ne l´ai pas, donc j´ai pas essayé, et du coup, j´arrive pas a trouver la réponse pour le cas de soulhouf et de gollumkawder :-(

jejej
jejej
Niveau 9
15 mars 2005 à 22:10:42

Bon , j´ai enfin réussi à implémenter l´affichage dans " mon propre jeu " ( je met " " parceque , maintenant , y a plus de code à JYY qu´à moi . .. ^^ )
Elles sont vraiment pas mal , tes fonctions JYY, tu les as faites portables , c´est cool , parceque tu aurais pu mettre des valeurs par defaut partout , et ca aurait ete galere à porter . ..
merci :)

( bon , par contre , pas de screenshot :p) )

soulhouf
soulhouf
Niveau 4
15 mars 2005 à 22:11:23

salut,
bizarrement maintenant ça marche ( je n´ai rien changé!!)
merci beaucoup JYY pour ton aide, il faut que je pense a l´architecture de mon projet maintenant.
allez au boulot
:merci:

JeanYvesYves
JeanYvesYves
Niveau 10
15 mars 2005 à 22:40:48

soulhouf > Ah ben tant mieux si ça marche maintenant :) bizarre pour tout a l´heure !

jejej > oui, le but des fonctions Futils est qu´elles soient réutilisables facilement.
C´est un peu pareil pour les classes d´ailleurs :)

Probleme pour le moment dans les classes :
La classe Fmap pose les tiles en HARD : pas de parametres. ( changera)
La classe Fperso n´a pas d´option pour désactiver le scrolling : en effet, je pourrai me permettre d´utiliser cette meme classe pour instantier un perso par l´ordi qui bouge, mais faudra pas qu´il le suive au scrolling :)

soulhouf
soulhouf
Niveau 4
15 mars 2005 à 23:58:20

JYY
j´ai reussi a modifier le perso a deplacer dans le programme de deplacement de personnage que tu a propose.
Mais quand j´ai introduit un autre sprite le perso n´apparait plus

jejej
jejej
Niveau 9
16 mars 2005 à 08:14:10

pas la peine d´en dire autant , JYY voit tout . ..

hum , serieux , dis au moins les modifications que tu as faite . ..
tu as ajoute un nouveau perso , c´est a dire tu as fait ca ?

Fperso Fp2("charset.bmp",200,100,&); ?

dans ce cas , il ne faut pas oublier d´ajouter les methodes de render pour Fp2 dans le main .

Fp2.Render();

c´est peut etre pas ca du tout , mais avec ce que tu as dit , je crois pas pouvoir faire plus , dsl .
mais , ca va faire bizarre je pense , puisque le scrolling devra suivre les deux joueurs ? moi , je serais l´ordinateur , je planterai direct ^^

JeanYvesYves
JeanYvesYves
Niveau 10
16 mars 2005 à 09:41:28

jejej > Oui, en effet :)
Si tu veux créer un autre perso, tu fais bien :
Fperso Fp2("charset.bmp",200,100,&);
et
Fp2.Render(); pour le rendre :)

Par contre, en ce qui concerne le scrolling, ça ne va pas planter, mais faire n´importe quoi :)
En effet, si tu rends Fp avant Fp2, alors - dans le cas ou ils bougent tout deux - ça va cacluler la fenetre de scroll pour Fp, mais comme y´a pas le flip,
alors il va ensuite calculer cette fenetre pour Fp2, puis rendre : en définitive, si les 2 bougent, c´est les dernier qui est suivi.
Cependant, comme tu as vu, la gestion du scrolling est dans les Move, c´est a dire que si le sprite ne bouge pas, y´a pas de control de scrolling
( ce qui parait logique : le perso ne bouge pas, pourquoi scroller ? )
Alors si le 2e perso ne bouge pas, alors le scrolling va se caler sur le premier qui bouge, donc sur Fp.
Et sitot que tu bouges Fp2, Pan ! la fenetre se recale sur lui : résultat, saut violent vers le 2e....

Pour palier ça ? Simple !
Surcharge le constructeur :
dis lui :
Fperso Fp("charset.bmp",200,100,&,1);
Fperso Fp2("charset.bmp",200,100,&,0);

Comme tu vois, j´ajoute un 0 ou un 1 a la fin.
je récupere cette donnée dans, on va dire, la variable " scroll" que je rajoute dans les données private de la classe !
N´oublie pas de la remplir dans le constructeur.

Puis ensuite, dans les fonctions move, tu proteges la partie scrolling par :

if ( scroll==1)
{

}

Tout simplement !
PS : petite optimisation qu´on pourrait faire aussi :
Fp et Fp2 ont tous les 2 le charset, qu´ils chargent chacun dans leur coin, donc ils consomment 2 fois la mémoire du meme charset.
ça pourrait bien sur etre optimisé :) mais bon !

soulhouf
soulhouf
Niveau 4
16 mars 2005 à 13:11:11

c pas ça le probleme...
excusez moi je n´ai pas ajouté un nouveau perso mais je voulais plutot utiliser un autre perso a la place du premier ( utiliser d´autres sprites en gros) et vu que mes sprites n´étaient pas régulieres, le programme affiche a l´ecran n´importe quoi.
n´y a-t-il pas un moyen d´organiser les sprites avec Photoshop d´une maniere efficace?

LGV
LGV
Niveau 28
16 mars 2005 à 14:10:35

Photoshop ? . . c´est la facon dont tu geres les ressources qui importe, pas vraiment comment tu les stockes. Fais toi une routine generique pour afficher des sprites de tailles variables, et c´est fini.
Apres, comment organiser les images des sprites, ca devient une question de transfert memoire et de bande passante. Des textures de 256 ou 1024 en DXTC contenant chacune un atlas des images pour une entite donnee, c´est une solution comme une autre par ex.

LGV
LGV
Niveau 28
16 mars 2005 à 14:12:51

ah tiens, je m´a goure avec le topic plus generique C++; du coup il y a p-e des choses specifiques aux tutos de JYY ici :)

JeanYvesYves
JeanYvesYves
Niveau 10
17 mars 2005 à 21:02:54

Ajout d´un Mini casse brique SDL avec ses sources.
Rubrique 2_A_03

Par soucis d´honneteté, je précise que ce mini jeu n´est pas de moi. C´est d´ailleurs grace a lui que j´ai accroché SDL, il y a presque 2 ans.
Dans la mesure ou le lien pour y accéder est maintenant mort :-(
http://www.golum.net
Je me suis permis de le mettre sur mon site, en précisant bien cela au début du fichier . cpp en commentaires.

soulhouf
soulhouf
Niveau 4
21 mars 2005 à 14:43:10

j´ai un petit probleme avec le deplacement des persos.
JeanYvesYves j´ai une question a te poser:
dans ton tutorial quand tu deplaces un perso tu utilise 3 sprites par direction. Moi, je veux utiliser 6 alors je fait comment?
( j´ai essayé de modifier les fonctions MoveX , MoveY et Render mais ça fait un truc bizarre)
merci

JeanYvesYves
JeanYvesYves
Niveau 10
21 mars 2005 à 15:08:00

Le calcul de l´image d´animation est fait derriere les commentaires suivants dans Fperso::MoveX et Fperso::MoveY
-->
/ * calcul image */

Il te suffit d´adapter pour avoir ce que tu veux :)
ça calcule le numéro de l´image.
Dans la méthode Fperdo::Render, il y a également un calcul pour transofmer le numéro de l´image en position x,y sur le charset :)
Apres, bien sur, tout dépend comment est fait ton charset.

soulhouf
soulhouf
Niveau 4
21 mars 2005 à 15:22:07

en faite mon charset se compose de de 6 sprites horizontales sur 4 verticales et j´ai fait les transfos que tu ma indiqué: j´ai transformé tout ce qui est " 3" en " 6"... mais ça marche pas

JeanYvesYves
JeanYvesYves
Niveau 10
21 mars 2005 à 15:25:53

faut changer dans le render aussi...

soulhouf
soulhouf
Niveau 4
21 mars 2005 à 15:28:05

oui je l´ai fait mais il m´affiche un truc bizarre: il utilise 3 images de la ligne souhaitee + 3 images de la ligne suivante...

JeanYvesYves
JeanYvesYves
Niveau 10
21 mars 2005 à 15:29:33

revois ton calcul alors.

soulhouf
soulhouf
Niveau 4
21 mars 2005 à 15:33:58

maintenant le perso disparait...
j´ai surement fait une erreur de calcul mais j´arrive pas a la trouver.
merci quant meme

JeanYvesYves
JeanYvesYves
Niveau 10
21 mars 2005 à 15:39:12

regarde dans le MoveX : ( adapte pour les autres)

crim=9+(Timer()/100)%3;

le / 100 définira qu´il y a un changement d´anim par dizieme de secondes ( diminue pour aller plus vite, augmente pour ralentir)
le %3 veut dire que tu vas faire :
0,1,2,0,1,2,0,1,2,....
dans ton cas, fait %6

le 9, c´est le sprite de départ : compte tes sprites sur ton charset de gauche a droite et de haut en bas, en partant de 0...

dans ton cas, au lieu de faire 0,3,6,9 dans les points de départ, tu feras 0,6,12,18

regarde ensuite dans le render :

XTILE*(crim%3),YTILE*(crim/3),XTILE*(crim%3)+24,YT
ILE*(crim/3)+32

Ici, les 3, tu les remplaces par 6 dans ton cas ( tous)
le 24 et le 32 c´est la largeur et la hauteur : met a jour aussi.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment