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

J´aide les personne en C/C++

Fvirtman
Fvirtman
Niveau 10
18 juin 2007 à 11:41:26

[JV]MaxX > je ne connais pas CBS. Pour résumer ça marche comment, c´est une interface graphique ?
As tu déja fait de la prog graphique ? Quel est ton niveau en C/C++ ?

dnob700
dnob700
Niveau 10
18 juin 2007 à 12:05:59

Fvirtman, j´ai bien peur qu´il se s´agisse d´une technologie très au delà de tes compétences et qui fasse appel à cet outils que tu n´a jamais maitrisé qu´est RPG Maker ...

en tout cas, je crois que ce n´est pas le bon topic pour poster ça.

Fvirtman
Fvirtman
Niveau 10
18 juin 2007 à 12:11:47

ah ok, en effet, j´abdiques, je n´ai pas les compétances suffisantes pour RPG Maker (j´ai bien essayé une fois RPG Maker 2003, pour voir, et une fois que mon perso se balladait dans la minimap que j´avais fait, j´étais content... j´ai donc désinstallé)

-MasterLink-
-MasterLink-
Niveau 6
26 juin 2007 à 21:28:40

Salut

J´ais commencé le C il y a une semaine et comme il fallait s´y attendre, j´ais (déjà) une question.

Donc en fait j´ais fait une petite appli avec un perso qui se deplace a la souris, le scrolling et un editeur de niveau. C´est justement l´editeur de niveau qui pose probleme, car avant de placer les images, je dois d´abord les charger. Et donc je me retrouve avec a chaque tour de boucle, les images a charger, resultat : la ram qui monte en fleche.
J´ais essayé plusieurs trucs pour ne charger les images qu´au premier passage de la boucle, comme declarer le SDL_Surface* en extern, mais je me retrouve toujours avec le compilo qui gueule :p)
J´ais aussi essayé d´effacer les images en fin de boucle, mais charger et effacer tout le temps, je me doute que ça ne doit rester qu´une solution provisoire :p)

Donc quelqu´un aurait-il une solution pour ne charger ces images qu´au premier passage de la boucle, sachant que cette solution doit rester dans le void, donc ne peut a priori pas être placée en dehors du while principal.

Merci d´avance

godrik
godrik
Niveau 30
26 juin 2007 à 21:41:02

Si tu nous donnais un peu de code ?
mais globablement, c´est bien l´idée que tu as donné. Tu ne charges les images que la premiere fois dans une zone de mémoire global.

Je me demande si tu n´as pas confondu variable globale et le mot clé du C "extern" qui sert a dire qu´une vairable est crée "ailleurs"

Kaoron
Kaoron
Niveau 9
26 juin 2007 à 21:42:39

Je ne vois pas pourquoi tu ne pourrais pas sortir le chargement du while, bien au contraire, généralement on charge/initialise avant d´entrer dans la boucle.

Sinon, ton problème peut être réglé simplement par une condition. "Si NON surfaceChargée alors Chargement()", surfaceChargée est un pointeur, si celui-ci est égal à NULL, il aura la valeur booléenne faux.

On utilise cette technique orientée objet pour faire des singletons si je ne me trompe pas.

-MasterLink-
-MasterLink-
Niveau 6
26 juin 2007 à 22:29:21

godrik :d) ah oui effectivement quand je disant extern je parlait du mot clé, donc en debut de code :
extern int blabla;
int blabla;

Donc je vais donc voir mon amis google pour voir ce qu´est une variable globale.

Kaoron :d) en fait c´est moi qui impose de garder le chargement de l´image a l´interieur du void, parce que l´"objectif" est de faire un editeur de niveau, donc pouvoir rajouter d´autre fichier .cpp contenant juste un void avec le placement des images. Il faut donc que je charge les images en fonction de ce qu´il y a dans le void, d´ou l´obligation de charger en debut de void.

Donc ta solution ressemblera à
if (a==0) SDL_Surface* image = ... ;
a = 1;
si oui, je crois avoir deja essayé, et le compilo avait pas aimé. Je vais retester et donner le message d´erreur.

En tous cas merci a vous deux

-MasterLink-
-MasterLink-
Niveau 6
26 juin 2007 à 22:49:02

Voila j´ais regardé ce qu´étais les variable globales, et donc la seule chose qui m´était inconnue était le nom (connais pas encore le vocabulaire du parfait petit programmeur :p) ). Mais comme je disais j´impose de déclarer le SDL_Surface* dans le void, donc sa ne resoud pas vraiment.

Pour l´erreur du compilo, quand je veux utiliser l´image après son chargement, elle est "undeclared, first use ...", donc il doit pas aimer qu´on déclare quelque chose dans une condition :-d

KeepSmile
KeepSmile
Niveau 4
26 juin 2007 à 23:00:41

Bonjour,

tu peux paster tout ton code sur
http://rafb.net/paste/ stp ?

merci :)

Fvirtman
Fvirtman
Niveau 10
27 juin 2007 à 00:28:03

-masterlink- > ne dis pas un "void", dis "une fonction" :)

Cette erreur de vocabulaire me montre une piste :) Tu consideres qu´une fonction renvoie toujours void, ce qui est handicapant !
Si tu la faisait renvoyer un SDL_Surface*, peux etre que ça t´aiderait :)

Visiblement, c´est un probleme de conception de ta part : je ne vois exactement ce que tu veux faire. Tout comme kaoron, je pense qu´il faut charger tes images en dehors d´un while.
Evidemment, si dans ta boucle, tu appelles un fichier sur le disque, alors il faut que ce soit fait que dans un certain cas, protéger par un bon if...

Avant de tirer des conclusions, je dirais aussi comme KeepSmile , wall nous ton code qu´on voit ce que tu veux faire :-)

grayfoxdie
grayfoxdie
Niveau 8
08 juillet 2007 à 20:12:13

voilà, je débute en prog (C, SDL), et j´essaie d´animer un sprite, (1 image, on affiche 1 partie de l´image, puis l´autre), ce qui fait une anime de 2 "images"

d´après tt les tutos ke j´ai regardé, pour animer un sprite c un truc bcp plus compliké :s
j´essaie d´abord un truc à ma maniere, mais ca marche pas lol

voilà le code
http://www.mezimages.com/membres/07/78475-SDL_anim_sprite.jpg

tt doit se passer ds la partie avec les "temps" et le clip[i]
mais l´image change pas :)

grayfoxdie
grayfoxdie
Niveau 8
08 juillet 2007 à 21:36:03

j´ai oublié de remettre le temps_actuel = temps_prec ; mais bon ca marche tjrs pas

Fvirtman
Fvirtman
Niveau 10
09 juillet 2007 à 00:03:31

Grayfoxdie > j´ai trouvé !

(la prochaine fois, quand tu wall ton code, ne fait pas un JPEG, mais wall le sur rafb.net)

if (i==0)
{
i==1;
}
else
{
i==0;
}

--> Ce if ne changera JAMAIS la valeur de i. Autant le == est nécessaire dans le if, autant si tu mets un == dans le corps du if, tu ne fais qu´un test dont la valeur de retour n´est pas testé.

i==1;
ou
i==0;

seuls comme ça n´ont aucun effet :)
mais bien :

i=1;
et
i=0;

Erreur d´étourderie, je dirais que ça nous arrive tous :-)

sangohan42
sangohan42
Niveau 9
09 juillet 2007 à 13:13:56

A ouai c´est la même erreur que moi dans mon petit jeu de tir a la lucky luke que j´essaie de faire ne ce moment.

Mais j´en ai d´autre je vous wall le code ce qu´il se passe c´est que mon image n´avance pas

http://rafb.net/p/9Twc8023.html

sangohan42
sangohan42
Niveau 9
09 juillet 2007 à 13:15:13

L´image represente la cible et pour le moment je voudrais juste qu´elle bouge sur l´axe des x peut etre devrais je créer une variable ImageVitX je ne sais pas.

grayfoxdie
grayfoxdie
Niveau 8
09 juillet 2007 à 14:23:03

lol pkoi jl´ai pas vu plus tot !! , ca m´aurait éviter de faire mes nombreux tests inutiles avec les timers :non2: et autres

en tt cas merci :-) ca marche maintenant

Fvirtman
Fvirtman
Niveau 10
09 juillet 2007 à 14:38:42

N´hésitez pas a utilsier le debuggueur !!
J´avais fait un topic il y a longtemps la dessus :

https://www.jeuxvideo.com/forums/1-31-8416483-1-0-1-0-0.htm

sangohan42 > ça te permettrait rapidement de voir ou sont tes soucis dans Pong -> le debuggueur te montrerait le plantage :)

Grayfoxdie > avec le debuggueur, tu aurais tres rapidement vu que "i" ne changeait pas de valeur, en breakpoint sur ta ligne de blit et en espionnant la variable i :)

Par contre, attention : ne travaillez pas en mode plein écran pour debugguer :) Avec SDL : désactivez l´option SDL_FULLSCREEN quand vous débugguez :-)

sangohan42
sangohan42
Niveau 9
09 juillet 2007 à 15:05:53

J´utilise codeblock et apparemment c´est pas tout a fais similaire a dev et visual . Un back-trace s´ouvre mais pas plus je ne sais pas trop quoi faire.

grayfoxdie
grayfoxdie
Niveau 8
09 juillet 2007 à 22:01:51

j´ai recu un signal SIGSEGV (segmentation violation?) d´après le debuggueur

http://rafb.net/p/yVglqa85.html

c´est du à quoi? :(

sangohan42
sangohan42
Niveau 9
09 juillet 2007 à 23:19:03

C´est normal que tu réutilises deux fois tes variables u et v?

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