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

dynoplasmma
dynoplasmma
Niveau 9
29 juin 2005 à 23:13:23

Je reposte :
En attendant quelquesproblemesde collisions :
http://rafb.net/paste/results/DqZSiV61.html

Des fois, elles marchent tres bien mais d´autres fois, c´est l´inverse de l´endroit ou elle doit aller qui se fait !

dynoplasmma
dynoplasmma
Niveau 9
29 juin 2005 à 23:15:33

Et es ce que c´est si grave que ca va pas toujours a l´endroit bas si ca touche en bas de la raquette.
Peu etre que le raquetteur tire plus ou moin tot donc c´est pas parce que c´est en bas que cza va tirer en bas.
Donc, je vous demande ce que vous en pensez, c´est vrai que ca serais mieux si quand c´est en bas ca va en bas, mas bon, si je ne puis faire autrement, il y aura une petit explication tout de meme.

Pendant ce temps, je vais laerire sagement, et je verrais bien si je trouve l´erreur.

sonic66
sonic66
Niveau 10
30 juin 2005 à 01:09:35

une page ?

c´est quoi la définition d´une page ?

déjà une ligne c´est jusqu´à un retour à la ligne, même si la ligne tiens sur plusieurs lignes, mais lire une page, on ne sait pas où ça s´arrète.

dsl dans un fichier txt , ben un moment en bas de la page , c finit lool

dynoplasmma
dynoplasmma
Niveau 9
30 juin 2005 à 13:44:59

Je crois avoir trouver pourquoi ca marche pas corectement, si la valeur est 5 par exemple, si on envoi -3, ca donne 2, donc ca envoi presque a l´oposéé.

Donc j´ai essayé de metre une nouvelle methode, de redissiner a chaque fois :

http://rafb.net/paste/results/UQtWJu33.html

Mais ca change pas grand chose, tient je vais faire 10 passes et je vous dit combien sont bonnes : la moitié de bonnes environ.

Syrtout au debut.

dynoplasmma
dynoplasmma
Niveau 9
30 juin 2005 à 15:24:55

En attendant quelquesproblemesde collisions :
http://rafb.net/paste/results/DqZSiV61.html

Des fois, elles marchent tres bien mais d´autres fois, c´est l´inverse de l´endroit ou elle doit aller qui se fait !

sonic66
sonic66
Niveau 10
30 juin 2005 à 15:35:05

comment faire pour ecrire a string a l´enver?

dnob700
dnob700
Niveau 10
30 juin 2005 à 15:35:28

sonic : dans un fichier texte si tu a

sonic66
sonic66
Niveau 10
30 juin 2005 à 15:35:59

nn j´ai trouvé ^^

dynoplasmma
dynoplasmma
Niveau 9
30 juin 2005 à 15:37:42

Pourquoi peersonne ne me repond !
En attendant quelquesproblemesde collisions :
http://rafb.net/paste/results/DqZSiV61.html

Des fois, elles marchent tres bien mais d´autres fois, c´est l´inverse de l´endroit ou elle doit aller qui se fait !

dnob700
dnob700
Niveau 10
30 juin 2005 à 15:38:50

si tu aggrandis ou rétrécit la taille de ta fenêtre le bas de ta page est pas au même endroit.

Alors que les fins de lignes restent au même endroit puice qu´elles sont définie par les caractères de retour à la ligne.

Mais dans ton programme où il n´y a pas de fenêtre de texte, comment sais tu où s´arrète une page d´une fichier . txt il n´y a pas de définition précise. C´est pourquoi ça n´existe pas. ensuite tu peut définir qu´une page s´arrète au caractère 01 et tout programmer, mais tu as décidé ce qu´était une page.

JeanYvesYves
JeanYvesYves
Niveau 10
30 juin 2005 à 15:46:59

j´ai pas suivi le début de la conversation.
C´est des collisions pour un pong ?

si c´est ça, il y a + simple que ton code :)

dynoplasmma
dynoplasmma
Niveau 9
30 juin 2005 à 15:49:27

Ah, un saueur !
JYY, en effet c´est des collisions pour mon pong.
Au debut, j´ai juste renvoyer la balle a l´inverse y.
Mais j´ai spearé la zone en 7 pour pouvoir l´envoyer ou on veut.
Mais des fois, ca va n´importe ou !

dynoplasmma
dynoplasmma
Niveau 9
30 juin 2005 à 15:50:21

non : inverse x et y change que en haut et en bas.

JeanYvesYves
JeanYvesYves
Niveau 10
30 juin 2005 à 15:53:06

en gros, tu veux que selon l´endroit ou ça tape la raquette, ça parte en biais ? :)
et pour cela, tu as découpé en 7 ? :)

dynoplasmma
dynoplasmma
Niveau 9
30 juin 2005 à 15:53:50

exactement ! :)

JeanYvesYves
JeanYvesYves
Niveau 10
30 juin 2005 à 15:55:46

je vais te faire un algo :)

dynoplasmma
dynoplasmma
Niveau 9
30 juin 2005 à 15:56:35

:merci: a toi
Sinon, pourquoi ca marche pas :question: des fois

sonic66
sonic66
Niveau 10
30 juin 2005 à 16:09:28
  1. include < stdlib.h>
  2. include < iostream>
  3. include < string>
  4. include < fstream>

using namespace std;

int main()
{
ofstream a("text.txt",ios::app);
char text1[200];
int i;
int j=0;
cin.getline(text1,200,´.´);
string strin(text1);
string strin2(strin);
i=strin.length();
for(i=i;i!=0;i--)
{
strin.replace(j,1,strin2[i]);
j++;
}
a < < strin;
system("pause");
return 0;
}

dans ce code tres mal fait , ya une erreur dans le for ( au replace) pk?

JeanYvesYves
JeanYvesYves
Niveau 10
30 juin 2005 à 16:12:20

dyno >

y1 = position y raquette 1
y2 = position y raquette 2
dy = longueur y des raquettes
x1 = position x du tamis de la raquette 1(on se fiche de la largeur de la raquette)
x2 = pareil pour la raquette 2.
x,y : position de la balle
vx,vy : direction de la balle

if ( x<x1 && vx<0) / / la balle est chez le Joueur 1 ( a gauche)
{
if ( y>y1 && y<y1+dy) / / sur la raquette ( n´importe ou)
{
rebondit(vx,vy,(y-(y1+dy)/2.0)/((y1+dy)/2.0))
}
else
{
/ / perd le point
}
}

if ( x>x2 && vx>0) / / la balle est chez le Joueur 2 ( a droite)
{
if ( y>y2 && y<y2+dy)
{
rebondit(vx,vy,(y-(y2+dy)/2.0)/((y2+dy)/2.0)))
}
else
{
/ / perd le point
}
}

Tu vas me dire, d´ou vient la formule :
( y-(y1+dy)/2.0)/((y1+dy)/2.0))

alors on décompose :

( y1+dy)/2.0 --> c´est la position y du centre de la raquette. ( met bien 2.0 et pas 2 pour manipuler des nombres réels)
si on appelle yc ce centre, on a :

( y-yc)/yc

y-yc, ça te donne la distance de la balle au centre. Il est positif si la balle tape la partie basse, et négatif si elle tape sur la partie haute.
on divise par yc pour ramener ça entre 0 et 1.
en gros, ce calcul va dire :

si on est au centre, on dit " 0", si on est tout au bord, on dit " 1" ou " -1" selon le coté
et au milieu, y´a tous les nombres entre 0 et 1. ça fait un beau dégradé.

ça va jusque la ?

alors on implémente :

void rebondit(int& vx,int& vy,double coeff)
{
double vcoeff=3.0;
vx=-vx / /--> change de sens pour x, ce que tu as dans le cas le plus simple.
vy+=(int)(coeff*vcoeff);
}

Voila, ici, donc, on fait le rebond normal, et on ajoute une ligne qui change vy en fonction du coeff, et également du vcoeff.
Qu´est ce que le vcoeff ? c´est simplement l´amplitude maxi que peut prendre la balle.... Si tu trouve que ça fait trop, diminue le ( pas en dessous de 1)
si tu trouve que ça ne fait pas assez, augmente...

Essaie, et dit moi ce que tu en penses ( j´ai pas testé, il y a peut etre des erreurs, mais ça te donne la piste...)

dnob700
dnob700
Niveau 10
30 juin 2005 à 16:14:21

ça c´est la formule que j´utilise dans mon pong pour le rebond sur la raquette de gauche :

pour la vitesse horizontal :

balle->dy=((2*(balle->y-raquettes.L.y)+d.balle.siz
e-d.raquette.longueur))*d.balle.max_speed_y*balle-

dy_base/(d.balle.def_speed_y*d.raquette.longueur)

;

c´est plutot assez long et pas très joli, mais ça gèer tout, accélération et angle de rebond.

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