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++

Ptival
Ptival
Niveau 10
19 mai 2005 à 22:53:34

L´argument 4 de SDL_BlitSurface est un pointeur de SDL_Rect.

Il attend donc en entrée l´adresse de ta surface pour pointer dessus, et toi tu lui donnes la " valeur" de ta surface...Donc il te dit " cannot convert" ( "je ne peux pas convertir ce que tu me donnes vers ce dont j´ai besoin")

Il faut donc mettre un & devant les noms des SDL_Rect donnés à cette fonction ( & est l´adresse de la variable)

SDL_BlitSurface(fond,NULL,screen,&1);
SDL_BlitSurface(barre_gauche,NULL,screen,&2);
SDL_BlitSurface(barre_droite,NULL,screen,&3);

dynoplasmma
dynoplasmma
Niveau 9
20 mai 2005 à 18:10:46

merci Ptival, mon programme fonctionne maintenant. Sympa a toi de m´aider, petite question : Tu trouves mon code cochon ou propre?
( ou alors entre les deux ; mi-cochon mi-propre)

dynoplasmma
dynoplasmma
Niveau 9
20 mai 2005 à 18:13:45

Par contre, le programme a du mal a fermer, echap ne donne rien, je suis obligé de faire
CTRL,ALT+SUPPR

Ptival
Ptival
Niveau 10
20 mai 2005 à 19:52:02

Bah ça va, le code est pas dégueulasse ; )

Le seul " problème" c´est que tout est en un fichier, ce qui fait que toutes les fonctions utilisent les mêmes variables ce qui est pas forcément bien :p ( À ton niveau ça ne pose pas de problèmes...)

C´est normal que le programme ne ferme pas, l est éxécuté par une boucle infinie.

au lieu du while(1) mets while(!bQuit) à la ligne 72.

dynoplasmma
dynoplasmma
Niveau 9
20 mai 2005 à 22:45:59

Ok :merci: sympa,

le programme se ferme correctement, dernier petit petit probleme, la barre de gauche commence
tout en haut a gauche au lieu de commencer aux coordonnées que je choisit :
http://walljv.free.fr/index.php?to=view&id=85

J´ai refait un wall pour que ca soit plus claire, c´est surment une petite erreur de ma part, mais je n la trouve pas.
Je pense que si je fait bouger la barre de droite, elle commencera surement en haut a gauche, ce qui pourrait etre tres genant.

Ptival
Ptival
Niveau 10
21 mai 2005 à 09:39:06

À la ligne 56 tu as :

r2.x=x;
r2.y=y;

Or en début de programme :

int x,y, bQuit=0;

Tu n´initialies pas les variables x et y et tu les utilise. C´est mal :)
Si ta barre commence tout en haut à gauche, c´est qu´apparemment x et y sont initialisés automatiquement à 0...
Ces variables x et y sont inutiles.

Remplace les lignes 62 et 63 par :

62 if ( keystate[SDLK_DOWN])r2.y++;
63 if ( keystate[SDLK_UP])r2.y--;

Et supprime l´initialisation de x et y, ainsi que les lignes 56 et 57 qui utilisent x et y :)

dynoplasmma
dynoplasmma
Niveau 9
21 mai 2005 à 10:24:24

parfait :)
:merci: beaucoup,
sinon, encore unne petite question,
il n´y aurais pas un myen de faire plus vite la vitesse, j´ai essayé :

if ( keystate[SDLK_DOWN])r2.y++=3*y;
if ( keystate[SDLK_UP])r2.y-=3*y;

mais cela ne marche pas. :non:

dynoplasmma
dynoplasmma
Niveau 9
21 mai 2005 à 11:05:20

Oh c´est magique :content: j´ai reussi a faire bouger 2 images comme je le voulais :content:
Je susi dans la bonne voie,

Ceux qui m´ont aidés dans l´ordre chronologique :
_Vengeur41((images,ou effacer rose)
_lapintade(conseils)
_Ptival(corriger pleins de trucs qui marchaient pas ds mon code)

homages.
Sinon, j´ai un cousin d´une vingtaine d´annee qui fait des logiciels aussi, c´est grace a lui que j´ai appri les bases pour faire des sites, apres, je voulais un logiciel pour faire des jv, j´ai trouvé 2 moi apres rpgmakerxp,
puis je me suis lancé dans le C++.

JeanYvesYves
JeanYvesYves
Niveau 10
21 mai 2005 à 11:24:54

dynoplasmma >

r2.y++=3*y; ? ??

Non :) y´a un + en trop.

r2.y+= 3*y si tu veux :)

plus tu vas mettre un nombre grand a droite du =, plus ça va bouger vite :)

dynoplasmma
dynoplasmma
Niveau 9
21 mai 2005 à 11:31:57

Non, cela ne fonctionne tjs pas, regarde :
if ( keystate[SDLK_DOWN])r2.y+=3*y;
if ( keystate[SDLK_UP])r2.y-=3*y;

c´est pourtant bien ce que tu m´as dit, non :question:

dynoplasmma
dynoplasmma
Niveau 9
21 mai 2005 à 11:51:46

Oh c´est magnifique :content: je viens de mettre la balle.
Par contre, les barres bougent comme des escargots.
Le probleme qui se pose maintenant, c´est les collisions.

Ptival
Ptival
Niveau 10
21 mai 2005 à 12:07:48

if ( keystate[SDLK_DOWN])r2.y+=3*y;
if ( keystate[SDLK_UP])r2.y-=3*y;

->

Je t´avais pas proposé de virer ces deux variables x et y ? :lol:

Sinon avec ce code, les barres vont bouger exponentiellement : Plus elles seront en bas de l´écran plus elles iront vite...Et aussi, si la barre est en ( 0;0) tu ne vas plus pouvoir la bouger ! !! ( 3*0 = 0 ! !!)

Il vaut mieux que tu mettes :

  1. define VITESSE 3

if ( keystate[SDLK_DOWN])r2.y+=VITESSE;
if ( keystate[SDLK_UP])r2.y-=VITESSE;

Après pour que ça aille plus/moins vite, tu changes juste la valeur de VITESSE dans le #define ; )

( Ou sinon sans variable :

if ( keystate[SDLK_DOWN])r2.y+=3;
if ( keystate[SDLK_UP])r2.y-=3;

Où tu remplaces 3 par ce que tu veux)

dynoplasmma
dynoplasmma
Niveau 9
21 mai 2005 à 12:16:55

parfait ptival, cela fonctione, j´ai choisit la deuxieme option, car une ligne de moin a ecrire.
Sinon, les barres, en haut elles se bloquent,mais en bat, elles continuent.
http://walljv.free.fr/index.php?to=view&id=86
Voici le code nouveau pour que ce soit plus facile.

Ptival
Ptival
Niveau 10
21 mai 2005 à 12:20:30

Bah mets un if pour faire que si les coordonnées des objets sortent de l´écran, ça les remette à la limite de l´écran :)

sonic66
sonic66
Niveau 10
21 mai 2005 à 13:18:56
  1. include < stdlib.h>
  2. include < iostream>

using namespace std;

int main()
{

int *a;
a=new int;

  • a=5;

cout < < *a < < endl;

  • a=6;

cout < < *a < < endl;
delete a;
a=new char;

  • a=b;

cout < < *a < < endl;
system("pause");
return 0;

}

voila , c´est censé etre un peu de la gestion dynamique des objets ^^

alors , ici , ca ne marche pas :

delete a;
a=new char;

or , je pensait que cela supprimé seulement le int stokké dans le a!

comment on fait pour seulement suprrimer ce que stokke a ( si c de la prog dynamique evidement ^^)

Quintoff
Quintoff
Niveau 10
21 mai 2005 à 13:25:59

Déja dans ton prog, b n´existe pas . ...

Rikkuman4
Rikkuman4
Niveau 10
21 mai 2005 à 13:43:46

bonjour, je suis en train de faire un petit rpg 1D pour le fun, bref quand y´a du texte j´aimerais que quand ont fait entré y´a pas le texte marqué " appuyé sur entré pour continué comment je pourrais faire ?

sonic66
sonic66
Niveau 10
21 mai 2005 à 13:47:54

Quintoff Posté le 21 mai 2005 à 13:25:59
Déja dans ton prog, b n´existe pas . . ..

si , jai du mal copié collé :-(

dynoplasmma
dynoplasmma
Niveau 9
21 mai 2005 à 14:11:22

Mais comment le faire :

{
SDL_FillRect(screen,NULL,0);
if ( SDL_PollEvent(&))
keystate=SDL_GetKeyState(NULL);
if ( keystate[SDLK_DOWN])r2.y+=5;
if ( keystate[SDLK_UP])r2.y-=5;
if y=765 r2.y-=0;
}

comme cela cela ne marche pas,
je pense qu´il faut mettre un truc dans le genre alors :
if r2.y=765->r2.y+=0;
ou un truc dans le genre, non :question:

Rikkuman4
Rikkuman4
Niveau 10
21 mai 2005 à 14:19:35

help svp :/ regarde mon code j´aimerais que l´ont ne vois pas le texte " appuyer pour continuer" . .

  1. include < iostream>
  2. include < cstdlib>

using namespace std;

int main()
{
cout<<"Garet dis : Il faut arrete tout de suite le programme ! " < <endl;
system("pause");
cout<<"clad dis : J arrive pas a arrete le programme ! " < <endl;
system("pause");
cout<<"garet dis : detruit la machine" < <endl;
system("pause");
cout<<"clad dis : jessaille mais elle et invinsible" < <endl;

system("pause");
return 0;

}

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