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

_-hebuskiller-_
_-hebuskiller-_
Niveau 8
23 février 2005 à 00:22:26

Aaa ok merci...
Jverrais plus tard alors :)
Et bonne nuit à tous ( enfin ceux qui restent)
++
:o))

guyver2
guyver2
Niveau 10
23 février 2005 à 00:43:40

j´ai un probleme avec un programme:
j´ai une fonction qui teste si une touche est appuyée.

la voici:

void UpdateCommandes()
{
SDL_Event event; / * Evenements de l´application */

/* Gestions des messages Systeme */
while ( SDL_PollEvent(&) ) {
switch ( event.type) {
case SDL_KEYDOWN:
switch( event.key.keysym.sym )
{
case SDLK_ESCAPE:
done = 1;
break;

case SDLK_SPACE:
IsSpace = 1;
break;
case SDLK_LEFT:
IsLeft = 1;
break;
case SDLK_RIGHT:
IsRight = 1;
break;
case SDLK_DOWN:
IsDown = 1;
break;
case SDLK_UP:
IsUp = 1;
break;

default:
break;
}
break;

case SDL_KEYUP:
switch( event.key.keysym.sym )
{
case SDLK_SPACE:
IsSpace = 0;
break;
case SDLK_LEFT:
IsLeft = 0;
break;
case SDLK_RIGHT:
IsRight = 0;
break;
case SDLK_DOWN:
IsDown = 0;
break;
case SDLK_UP:
IsUp = 0;
break;

default:
break;
}
break;

case SDL_QUIT:
done = 1;
break;

default:
break;
}
}

}
======================
le probleme c´est que ca ne detecte qu´un appui
et moi je voudrais que ca renvoi " vrai" meme quand on garde appuyée une touche.
comment faire???

cobradu94
cobradu94
Niveau 6
23 février 2005 à 00:46:29

Personne ne sais pk sa fait cette erreur ? ?

Koyo-K
Koyo-K
Niveau 9
23 février 2005 à 00:55:12

Merci JeanYvesYves ^^
Maintenant, en y repensant j´aimerais bien connaître la différence entre
static const int CONSTANTE = 20
et
const int CONSTANTE = 20
c´est le static qui me turlupine.

Koyo-K
Koyo-K
Niveau 9
23 février 2005 à 00:57:08

Et puis allez hop, j´en rajoute un pendant mon élan

  1. define CONSTANTE_H

je sais pas trop non plus c´est quoi la particularité de cette constante.

dnob700
dnob700
Niveau 10
23 février 2005 à 01:00:13

cobradu94 : je pense que tu doit utiliser SDL_GetKeyState, mais j´en suis pas sur car je ne l´ai jamais utiliser comme fonction. regarde dans la doc comment on s´en sers.

koyo : static sers normallement a dire au compilo que la variable est staic ! c´est a dire qu´elle ne sera pas réinitialisé entre les différend appel de la foction ou elle se trouve.

pour une variable const ça ne change donc rien.

par contre, static veut aussi dire que la variable a une porté qui ne dépasse pas le fichier où elel est déclaré.
elle ne pourra pas donc être utilisé dans un autre fichier avec le mots clef extern si tu connait.
pour ça, ça change qqch, mais bon, c´est pas très important.

dnob700
dnob700
Niveau 10
23 février 2005 à 01:01:49
  1. define CONSTANTE_H

ce que vaut réellement constante_h dépend du compilo je crois, mais disont pour simplifier, que l´on peut admettre que dans une expression comme ça constante_h vaut true, ou plus précisemment, elle a la valeur initialiser,

et donc dans un #ifdef constante_h, ça marchera ( if defined)

mais t´as question était un peu vague

Koyo-K
Koyo-K
Niveau 9
23 février 2005 à 01:14:38

Tu t´y connais dnob. C´est vrai que ma question est vague ; ceci dit, l´esprit l´est également.

cobradu94
cobradu94
Niveau 6
23 février 2005 à 02:00:16

Nan tu reponds pas a ma question, la quesion jl´ai poser a la page 152, jla repose :

Pourquoi mon programme ne compile pas, il me fait une seul erreur et il nya pas de ligne, l´erreur est
C:\Dev-Cpp\projet\projet pong avec son2\projet pong avec son\projet pong avec son\Makefile.win [Build Error] [dev.exe] Error 1
J´ai essayer de debugger mais il me dise que le programme doit etre compiler d´abord, et quand je compile il me dise l´erreur, je sais pas comment faire, je suis bloquer parceque je sais pas ou se trouve l´erreur, si vous savez merci.

dnob700
dnob700
Niveau 10
23 février 2005 à 02:44:45

guyver2 : plus haut c´est à ta question que je répondais et non pas à celle de cobradu94 ( désolé)

pour cobradu94, tu devrait soit mettre ton code source, soit créer un nouveau projet et y remettre ton code, car j´ai l´impression que ça pourrait venir du makefile, même si j´ai jamais vu ça, peut-être que ya eue un bug avec dev C++

Rikkuman4
Rikkuman4
Niveau 10
23 février 2005 à 08:20:26

salut, si j´ai bien compris typedef permet de créer des nouveaux types,c´est à dire il permet de garder des donné en memoir quand ont les appels c´est bien ca ?

inconnu[pure]
inconnu[pure]
Niveau 6
23 février 2005 à 08:22:22

_-hebuskiller-_ :g)Si la soulution c´est sa je n´avait pas vu que ton image se déplacait à 30 pixels
donc tu remplace:
dstblue.x = tuxX - 1;
dstblue.y = tuxY - 1;

par:
dstblue.x = tuxX - 30;
dstblue.y = tuxY - 30;

et ça
dstblue.w = image->w + 1;
dstblue.h = image->h + 1;

par:
dstblue.w = image->w + 60;
dstblue.h = image->h + 60;

--------------------------------------------------

p.s:Euhh.. Non c´etait pas moi qui avait dit:"C´est quoi le c++?"

JeanYvesYves
JeanYvesYves
Niveau 10
23 février 2005 à 09:08:07

Rikkuman4 > oui pour typedef.

inconnu[pure] >
pourquoi modifies tu les champs w et h de ton rectangle( il est vrai que j´ai pas tout suivi)

dans un blit, tu as 2 rectangles :
source : les 4 données x,y,w,h sont utiles
destination : uniquement x et y sont utiles ici :)

inconnu[pure]
inconnu[pure]
Niveau 6
23 février 2005 à 09:22:40

JeanYvesYves :d) Enfaites le but est de créer un rectangle bleuqui efaces les trace du tux donc comme il se déplace à une vitesse de 30pixel il faut déssiner un rectangle qui le dépace de 30 pixel à gauche, à droite , en bas et en haut.

inconnu[pure]
inconnu[pure]
Niveau 6
23 février 2005 à 10:29:29

Bon voila mon problème de SDL à cette fonction il y a un problème:

void GamePaint()
{
int s=0;
for(s=0;s<10;s++)
{
Skull[i]->Draw(surface);
}
FlipScreen(surface);//Et plus particliarement a cette ligne
i++;
if(i==10)i=0;
}

alors voici le code de la fonction FlipScreen:

void FlipScreen(SDL_Surface *screen)
{
SDL_Flip(screen);
}

Dans mon fichier srderr il m´ecrit:"Fatal signal: Segmentation Fault ( SDL Parachute Deployed)
"

Pendant le programme il charge l´image puis il quitte a la fonction FlipScreen.

Merci d´avance pour la réponse

--------------------------------------------------
--------------------------------------------------

jejej
jejej
Niveau 9
23 février 2005 à 10:48:12

JYY : j´aurais besoin d´aide :)

si j´ai bien compris tes fonctions Map et Pixel , tu recuperes en fait la couleur Bleu du pixel , et si c bleu tu dessines un mur . ..

mais , je ne comprends pas pourquoi a la fin de Pixel() , tu " return P[val] ( avec val = 2 ) "
?
puisqu´apres tu ne te sers pas de P . .. ?
mais de pix . ..

Bon , en fait tout ca , c´est pas très clair , mais je crois que ca qui m´arrangerait , c´est de savoir précisément ce que fait cette ligne de code :

SDL_GetRGBA(pix,level->format,&[0],&[1],&[2],&
[3]);

Qu´est ce qu´elle renvoit ? parceque , ensuite tu testes juste if ( pix == 0 ) ,

et pix , tu l´as ici :

pix=((Uint32*)(level->pixels))[b*(level->pitch/lev
el->format->BytesPerPixel)+a];

alors j´aurais voulu savoir ce que faisait aussi cette ligne la . .. :) merci

JeanYvesYves
JeanYvesYves
Niveau 10
23 février 2005 à 10:59:25

bon, alors, en relisant le code, je corrige un truc que je t´avais dit hier :
a savoir que ça réagissait sur le noir et le non noir : en fait ça réagit en effet que sur le bleu, je t´explique pourquoi :

la couleur d´un pixel est composé de 4 octets :
1 octet pour le rouge
1 octet pour le vert
1 octet pour le bleu
1 octet pour le canal alpha(oublie le celui la)

dans l´ordre, si tu prends juste les initiales, on est en mode RVBA. Et le Uint32 pix qui est dans la fonction Pixel récupere donc tout le pixel, donc le RVBA.
je cree ensuite un tableau P[0], P[1], P[2], P[3].
la fonction :

SDL_GetRGBA(pix,level->format,&[0],&[1],&[2],&
[3]);

décomposé le pixel, et remplit P[0], P[1], P[2], P[3].
a la sortie : tu as :
P[0] -> composante ROUGE de entre 0 et 255
P[1] -> composante VERTE de entre 0 et 255
P[2] -> composante BLEUE de entre 0 et 255
P[3] -> composante ALPHA de entre 0 et 255

et on retourne P[val].
Comme tu vois, j´appelle la fonction pixel avec l´indice 2, c´est a dire que je demande, pour le pixel a,b, sa composante BLEUE...

Apres, tu peux tres bien appeler la fonction avec le vert, le rouge, bref !

Et ce que je fais donc, j´appelle la fonction en demandant la composante bleue, ça me renvoie un nombre entre 0 ( pas de bleu du tout) et 255 ( maximum de bleu)
et je regarde s´il est égal à 0 ou non, c´est a dire que si y´a un petit peu de bleu, je mets la brique 1, dans tous les autres cas, je mets la brique 0.
Et dans ces cas la, tu peux remarquer que, comme mon if ne réagit que la dessus, si tu mets un pixel violet ( qui contient du rouge et du bleu) il le verra de la meme façon qu´un pixel bleu.
Mais évidemment, tu peux changer le if, et faire ce que tu veux :)

JeanYvesYves
JeanYvesYves
Niveau 10
23 février 2005 à 11:00:55

inconnu[pure] >
pour ton soucis, surement que " screen" n´est pas initialisé correctement : un segment fault, c´est quand tu essaies d´accéder a une zone mémoire qui n´est pas réservée au programme.
vérifie que screen soit correctement alloué.

jejej
jejej
Niveau 9
23 février 2005 à 11:06:22

OOOh merci :)
je vais modifier ta fonction , parceque , pour une carte , il me faudra plus de couleurs . .. d´ailleurs , paint est bien faiblard avec ces couleurs . .. vais prendre pixia je crois :)

Bon , allez , ce soir , j´ai ma premiere map :)

JeanYvesYves
JeanYvesYves
Niveau 10
23 février 2005 à 11:17:20

pas de soucis :)
Apres, tu peux tester le pixel que tu veux :
si par exemple tu veux tester le violet :

tu dis :

if ( P[0]==255 && P[1]==0 && P[2]==255)

par contre, si tu n´utilises pas paint, prend bien un logiciel qui te permette de voir la valeur RVB de tes pixels, car si tu procedes avec de tels if, un violet u chouia différent, que tu ne verras pas a l´oeil nu ( par exemple 254,0,255) ne sera pas vu comme le meme, et donc tu ne passeras pas dans le if ( logique)
donc soit exact sur le code RVB de tes pixels :)

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