nethacker
Messages postés288Date d'inscriptionmardi 2 mai 2006StatutMembreDernière intervention12 octobre 2011 27 juil. 2008 à 23:07
les composants ou peut on les trouver ?
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 8 mars 2006 à 21:26
bon regarder l Historique des mises à jour et Explication finale ,
merci a ce site
( et surtout aux gens presents sur se site , c'est grace a vous qu'il est si genial :) )
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 7 mars 2006 à 22:39
brouillard , gestion du ciel(a completer) et encore beaucoup d'idees mais tjs manque de temps ...
Ciao
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 7 mars 2006 à 22:24
Bon ca y est j'ai remis a jours , donc j'ai ajoute une procedure pause ou on peut mettre par exemple un fichier 3d ou on verrai l'object s'animer mais bon comme je n'ai pas de createur 3d j'ai juste fait une rotation de la camera autour de la balle .
Alors j'ai fait (beaucoup dire ca !!! J'ai juste utilise Glfire ...) une sorte d'explosion qd on touche les murs
Corriger qq conneries
Bon c'est maintenant que je l'ai poste que je vient de penser qu'il n'y a tjs pas un systeme de score max ou qqun peut gagner donc ca sera encore remis a jour ...
ciao
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 3 mars 2006 à 19:05
oui oui just !
c'est reglé mais je changerais le zip apres une + grosse MAJ
Alors la balle est assez grande? et la camera ,ca va?
Ciao
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 3 mars 2006 à 07:09
salut!
n'oublis pas de virer cela du cadencer :
// -------------------------------------------------------------------------------
// Infos !!! ds 1 label pr etre precis .... !
// -------------------------------------------------------------------------------
label1.Caption:='Score du Joueur 1 ' + inttostr(ScoreJ1);
label2.Caption:='Score du Joueur 2 ' + inttostr(ScoreJ2);
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 28 févr. 2006 à 22:20
bon ca y est j'ai modif un peu le code , la cam ne bouge plus qu'en on est a un seul joueur , j'ai grossit de 2 * la balle et change les textures du ciel (qui est devenu sphérique par la meme occasion ! ) .
Bon j'ai plein d'autres idees , genre une intro de debut ,etc ...
Mais le prob c'est que j'ai pas le temps !
Dur d'avoir une vie sociale !!!
Allez Ciao
Je regarderai peut etre a ca tard ce soir ...
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 28 févr. 2006 à 18:27
attend, y'a un truc qui ne vas pas la ...
la camera!
impossible de voir comment on doit se deplacer.
on ne sait pas ou se trouve le joueur 1 et le joueur 2
on ne vois pas la balle (c'est quoi ce point rouge ??)
tu n'est pas obliger d'utiliser du BMP pour les texture, tu peu mettre du JPG ce qui serat plus leger.
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 28 févr. 2006 à 15:53
avec cette version , tt ce fait ac des mouvements fluides car elle bouge de 0,1 en 0,1 et encore dans la version que j'ai mis sur le site ca n'a rien a voir car je met un chiffre bcp plus petit mais bon ... je changerais ca qd j'aurais le tps .
Mais regarde le jeu et dis moi si tu vois des "bonds " de la raquette ?
Merci
Et Merci de tt tes conseils et explications
Ciao
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 27 févr. 2006 à 23:16
alors non pour l'ia, car ta raquette fait des "bonds" de position en position sans faire de mouvement fluide. (elle triche en gros)
donc utilise ma methode (je l'utilise dans mon GLPong fait aussi avec GLScene et ça marche super bien)
pour le compteur FPS et affichage des score, oui ça apporte beaucoup!
non seulement les performance sont meilleurs et de plus l'affichage est plus controlable.
pour la lisibilitée c'est du kif kif.
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 27 févr. 2006 à 01:52
if J1.Checked=true then
begin
// La raquette suit la balle
if balle.DistanceTo(raquette2)<100 then
begin
with raquette2.Position do
begin
if X>balle.Position.X then x:=x-0.1;
if Xballe.Position.Y then y:=y-0.1;
if Y<balle.Position.Y then y:=y+0.1;
end;
ou le 0.1 doit changer par rapport a la dificulte :)
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 27 févr. 2006 à 01:47
euh ... serieusement est ce que ecrire ca
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Caption :format('Pong 3d FPS %.2f',[GLScene.FramesPerSecond]);
glscene.ResetPerformanceMonitor;
label1.Caption := format('Score du Joueur 1 %d',[ScoreJ1]);
label2.Caption := format('Score du Joueur 2 %d',[ScoreJ2]);
end;
apporte vraiment qqch de plus fort parce que moi je trouve que ca n'apporte rien en lisibilité
Pour l'intelligence artificille on peut faire un truc du genre
if balle.distanceto(raquette2) < UnNombre alors
debut
if raquette.pos.x>balle...x then raquette.pos.x:=raquette.pos.x-UnChiffre
if raquette.pos.x<balle...x then raquette.pos.x:=raquette.pos.x+UnChiffre
idem pour la pos en Y
Et le chiffre creer l'handicap pour la raquette , non ???
Bon j'pense que ca peut marcher comme ca
et ou Unnombre doit etre determiner pourdonner le tps de reaction a l'adversaire
fin
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 27 févr. 2006 à 01:38
Bon no problemo , je me plonge dans tt ca et si jamais g un blem j'espere que tu seras encore la pour y repondre en tps reel !
Ciao
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 27 févr. 2006 à 01:06
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Caption :format('Pong 3d FPS %.2f',[GLScene.FramesPerSecond]);
glscene.ResetPerformanceMonitor;
label1.Caption := format('Score du Joueur 1 %d',[ScoreJ1]);
label2.Caption := format('Score du Joueur 2 %d',[ScoreJ2]);
end;
___________________________________
modif de la boucle :
procedure TForm1.BoucleProgress(Sender: TObject; const deltaTime,newTime: Double);
begin
GestionCollision.CheckCollisions;
if D1.Checked then Vitesse.Vb := 0.01;
if D2.Checked then Vitesse.Vb := 0.02;
if D3.Checked then Vitesse.Vb := 0.03;
if D4.Checked then Vitesse.Vb := 0.05;
with Cam1.Position do begin
if AxPos.Z < 0 then SetPoint(AxPos.X,25,-80);
if AxPos.Z > 0 then SetPoint(AxPos.X,25,80);
end;
with Balle.Position do begin
X := X + Vitesse.Vx;
Y := Y + Vitesse.Vy;
Z := Z + Vitesse.Vz;
end;
with Raquette1.Position do begin
if (IsKeyDown(VK_RIGHT)) and (MoveRightLock) then X := X - 0.1;
if (IsKeyDown(VK_LEFT)) and (MoveDownLock) then X := X + 0.1;
if X < -47.5 then X:= -47.5;
if X > 47.5 then X:= 47.5;
if (IsKeyDown(VK_DOWN)) and (MoveUpLock) then Y := Y - 0.1;
if (IsKeyDown(VK_UP)) and (MoveUpLock) then Y := Y + 0.1;
if Y < 2.5 then Y := 2.5;
if Y > 47.5 then Y := 47.5;
end;
with Raquette2.Position do begin
if (IsKeyDown(83)) and (MoveRightLock) then X := X - 0.1;
if (IsKeyDown(70)) and (MoveDownLock) then X := X + 0.1;
if X < -47.5 then X := -47.5;
if X > 47.5 then X := 47.5;
if (IsKeyDown(68)) and (MoveUpLock) then Y := Y - 0.1;
if (IsKeyDown(69)) and (MoveUpLock) then Y := Y + 0.1;
if Y < 2.5 then Y := 2.5;
if Y > 47.5 then Y := 47.5;
end;
If not (AxPos.X < AxMax.X) then begin
Vitesse.Vx := -Vitesse.Vb;
Mur1.Material.Texture.ImageGamma := 2;
end;
Mur1.Material.Texture.ImageGamma := 1;
If not (AxPos.X > AxMin.X) then begin
Vitesse.Vx := Vitesse.Vb;
Mur2.Material.Texture.ImageGamma := 2;
end;
Mur2.Material.Texture.ImageGamma := 1;
if AxPos.Z < (AxMin.Z - 25) then begin
balle.Position.X := 0;
balle.Position.Y := 0;
balle.Position.Z := 0;
inc(ScoreJ2);
end;
if AxPos.Z > (AxMax.Z + 25) then begin
balle.Position.X:=0;
balle.Position.Y:=0;
balle.Position.Z:=0;
inc(ScoreJ1);
end;
if AxPos.Y > AxMax.Y then Vitesse.Vy := -Vitesse.Vb;
if AxPos.Y < AxMin.Y then Vitesse.Vy := Vitesse.Vb;
if J1.Checked then begin
{gestion IA}
// if AxPos.Z > 25 then begin
// raquette2.Position.X := balle.Position.X ;
// raquette2.Position.Y := balle.Position.Y ;
// end;
If raquette2.Position.X <= AxMin.X Then raquette2.Position.X := AxMin.X;
If raquette2.Position.X >= AxMax.X Then raquette2.Position.X := AxMax.X - 5;
end;
gestion de l'ia (a adapter et a mettre dans la boucle) :
// si la balle viens dans la direction de la raquette CPU
// et surtout quand elle arrive a la moitiée du terrain
if Ball.Direction.Z < [moitiée du terrain] then begin
// si la balle vas vers la gauche on deplace la raquette a gauche
if Ball.Position.X - RaqCPU.Position.X < 0 then RaqCPU.Direction.x := -1
else
// si la balle vas a droite on deplace la raquette a droite
if Ball.Position.X - RaqCPU.Position.X >= 0 then RaqCPU.Direction.x := 1;
// pour stopper la raquette quand elle se trouve sur la tajectoire de la balle
if not inrange(RaqCPU.Position.X, Ball.Position.X - 0.2, Ball.Position.X + 0.2) then
RaqCPU.Move(CPURaqSpeed);
end;
___________________________________
modif FormCreate :
procedure TForm1.FormCreate(Sender: TObject);
begin
menu.Items.AutoCheck:=true;
ScoreJ1 := 0;
ScoreJ2 := 0;
AxMax.X := Mur1.Position.x-1;
AxMin.X := Mur2.Position.x+1;
AxMax.Y := Plafond.Position.Y-1;
AxMin.Y := sol.Position.Y+1;
AxMax.Z := Raquette2.Position.Z-1;
AxMin.Z := Raquette1.Position.Z+1;
cam1.TargetObject := balle;
if D1.Checked then Vitesse.Vb := 0.01;
if D2.Checked then Vitesse.Vb := 0.02;
if D3.Checked then Vitesse.Vb := 0.03;
if D4.Checked then Vitesse.Vb := 0.05;
Vitesse.Vx := -0.005;
Vitesse.Vy := -vitesse.Vb;
Vitesse.Vz := vitesse.Vb;
with Raquette1.Material.Texture do begin
ImageGamma:=2;
Image.LoadFromFile('Raquette1.bmp');
Enabled:=true;
end;
with Raquette2.Material.Texture do begin
ImageGamma:=2;
Image.LoadFromFile('Raquette2.bmp');
Enabled:=true;
end;
with Ciel.Material.Texture do begin
ImageGamma:=2;
Image.LoadFromFile('sky2.bmp');
Enabled:=true;
end;
with mur1.Material.Texture do begin
Image.LoadFromFile('Wall28.bmp');
Enabled:=true;
end;
mur2.Material := mur1.Material;
with Sol.Material.Texture do begin
ImageGamma:=3;
Image.LoadFromFile('Wall28.bmp');
Enabled:=true;
end;
plafond.Material := sol.Material;
end;
___________________________________
voila reste a modifier le reste... bon courage pour adapter l'IA
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 26 févr. 2006 à 20:34
Bord** ! je l'ai peut etre ajoute dans le code mais pas a moi en tt cas ! lire Inteligence a l'intelignece et normalement a normalemnt !
Bon ce qui est des accents suis trop faineant desole !
Ciao
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 26 févr. 2006 à 20:31
l'intelignece artificielle est maintenant dispo mais recherche d'une procedure pour l'affaiblir car elle est normalemnt imbatable
Ciao
PS: Pour le son je vais encore attendre car Fmod et GlBass ne marche pas chez moi (bug !)
27 juil. 2008 à 23:07
8 mars 2006 à 21:26
merci a ce site
( et surtout aux gens presents sur se site , c'est grace a vous qu'il est si genial :) )
7 mars 2006 à 22:39
Ciao
7 mars 2006 à 22:24
Alors j'ai fait (beaucoup dire ca !!! J'ai juste utilise Glfire ...) une sorte d'explosion qd on touche les murs
Corriger qq conneries
Bon c'est maintenant que je l'ai poste que je vient de penser qu'il n'y a tjs pas un systeme de score max ou qqun peut gagner donc ca sera encore remis a jour ...
ciao
3 mars 2006 à 19:05
c'est reglé mais je changerais le zip apres une + grosse MAJ
Alors la balle est assez grande? et la camera ,ca va?
Ciao
3 mars 2006 à 07:09
n'oublis pas de virer cela du cadencer :
// -------------------------------------------------------------------------------
// Infos !!! ds 1 label pr etre precis .... !
// -------------------------------------------------------------------------------
label1.Caption:='Score du Joueur 1 ' + inttostr(ScoreJ1);
label2.Caption:='Score du Joueur 2 ' + inttostr(ScoreJ2);
28 févr. 2006 à 22:20
Bon j'ai plein d'autres idees , genre une intro de debut ,etc ...
Mais le prob c'est que j'ai pas le temps !
Dur d'avoir une vie sociale !!!
Allez Ciao
Je regarderai peut etre a ca tard ce soir ...
28 févr. 2006 à 18:27
la camera!
impossible de voir comment on doit se deplacer.
on ne sait pas ou se trouve le joueur 1 et le joueur 2
on ne vois pas la balle (c'est quoi ce point rouge ??)
tu n'est pas obliger d'utiliser du BMP pour les texture, tu peu mettre du JPG ce qui serat plus leger.
28 févr. 2006 à 15:53
Mais regarde le jeu et dis moi si tu vois des "bonds " de la raquette ?
Merci
Et Merci de tt tes conseils et explications
Ciao
27 févr. 2006 à 23:16
donc utilise ma methode (je l'utilise dans mon GLPong fait aussi avec GLScene et ça marche super bien)
pour le compteur FPS et affichage des score, oui ça apporte beaucoup!
non seulement les performance sont meilleurs et de plus l'affichage est plus controlable.
pour la lisibilitée c'est du kif kif.
27 févr. 2006 à 01:52
begin
// La raquette suit la balle
if balle.DistanceTo(raquette2)<100 then
begin
with raquette2.Position do
begin
if X>balle.Position.X then x:=x-0.1;
if Xballe.Position.Y then y:=y-0.1;
if Y<balle.Position.Y then y:=y+0.1;
end;
ou le 0.1 doit changer par rapport a la dificulte :)
27 févr. 2006 à 01:47
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Caption :format('Pong 3d FPS %.2f',[GLScene.FramesPerSecond]);
glscene.ResetPerformanceMonitor;
label1.Caption := format('Score du Joueur 1 %d',[ScoreJ1]);
label2.Caption := format('Score du Joueur 2 %d',[ScoreJ2]);
end;
apporte vraiment qqch de plus fort parce que moi je trouve que ca n'apporte rien en lisibilité
Pour l'intelligence artificille on peut faire un truc du genre
if balle.distanceto(raquette2) < UnNombre alors
debut
if raquette.pos.x>balle...x then raquette.pos.x:=raquette.pos.x-UnChiffre
if raquette.pos.x<balle...x then raquette.pos.x:=raquette.pos.x+UnChiffre
idem pour la pos en Y
Et le chiffre creer l'handicap pour la raquette , non ???
Bon j'pense que ca peut marcher comme ca
et ou Unnombre doit etre determiner pourdonner le tps de reaction a l'adversaire
fin
27 févr. 2006 à 01:38
Ciao
27 févr. 2006 à 01:06
TTriPoint = record
X,Y,Z : single;
end;
TQuadSpeed = record
Vb, Vx,Vy,Vz : single;
end;
var
Form1 : TForm1;
Vitesse : TQuadSpeed;
AxPos, AxMin, AxMax : TTriPoint;
ScoreJ1, ScoreJ2 : integer;
MoveLeftLock : boolean = true;
MoveRightLock : boolean = true;
MoveUpLock : boolean = true;
MoveDownLock : boolean = true;
___________________________________
modif pour le compteur de FPS :
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Caption :format('Pong 3d FPS %.2f',[GLScene.FramesPerSecond]);
glscene.ResetPerformanceMonitor;
label1.Caption := format('Score du Joueur 1 %d',[ScoreJ1]);
label2.Caption := format('Score du Joueur 2 %d',[ScoreJ2]);
end;
___________________________________
modif de la boucle :
procedure TForm1.BoucleProgress(Sender: TObject; const deltaTime,newTime: Double);
begin
GestionCollision.CheckCollisions;
if D1.Checked then Vitesse.Vb := 0.01;
if D2.Checked then Vitesse.Vb := 0.02;
if D3.Checked then Vitesse.Vb := 0.03;
if D4.Checked then Vitesse.Vb := 0.05;
with Cam1.Position do begin
if AxPos.Z < 0 then SetPoint(AxPos.X,25,-80);
if AxPos.Z > 0 then SetPoint(AxPos.X,25,80);
end;
with Balle.Position do begin
X := X + Vitesse.Vx;
Y := Y + Vitesse.Vy;
Z := Z + Vitesse.Vz;
end;
with Raquette1.Position do begin
if (IsKeyDown(VK_RIGHT)) and (MoveRightLock) then X := X - 0.1;
if (IsKeyDown(VK_LEFT)) and (MoveDownLock) then X := X + 0.1;
if X < -47.5 then X:= -47.5;
if X > 47.5 then X:= 47.5;
if (IsKeyDown(VK_DOWN)) and (MoveUpLock) then Y := Y - 0.1;
if (IsKeyDown(VK_UP)) and (MoveUpLock) then Y := Y + 0.1;
if Y < 2.5 then Y := 2.5;
if Y > 47.5 then Y := 47.5;
end;
with Raquette2.Position do begin
if (IsKeyDown(83)) and (MoveRightLock) then X := X - 0.1;
if (IsKeyDown(70)) and (MoveDownLock) then X := X + 0.1;
if X < -47.5 then X := -47.5;
if X > 47.5 then X := 47.5;
if (IsKeyDown(68)) and (MoveUpLock) then Y := Y - 0.1;
if (IsKeyDown(69)) and (MoveUpLock) then Y := Y + 0.1;
if Y < 2.5 then Y := 2.5;
if Y > 47.5 then Y := 47.5;
end;
If not (AxPos.X < AxMax.X) then begin
Vitesse.Vx := -Vitesse.Vb;
Mur1.Material.Texture.ImageGamma := 2;
end;
Mur1.Material.Texture.ImageGamma := 1;
If not (AxPos.X > AxMin.X) then begin
Vitesse.Vx := Vitesse.Vb;
Mur2.Material.Texture.ImageGamma := 2;
end;
Mur2.Material.Texture.ImageGamma := 1;
if AxPos.Z < (AxMin.Z - 25) then begin
balle.Position.X := 0;
balle.Position.Y := 0;
balle.Position.Z := 0;
inc(ScoreJ2);
end;
if AxPos.Z > (AxMax.Z + 25) then begin
balle.Position.X:=0;
balle.Position.Y:=0;
balle.Position.Z:=0;
inc(ScoreJ1);
end;
if AxPos.Y > AxMax.Y then Vitesse.Vy := -Vitesse.Vb;
if AxPos.Y < AxMin.Y then Vitesse.Vy := Vitesse.Vb;
if J1.Checked then begin
{gestion IA}
// if AxPos.Z > 25 then begin
// raquette2.Position.X := balle.Position.X ;
// raquette2.Position.Y := balle.Position.Y ;
// end;
If raquette2.Position.X <= AxMin.X Then raquette2.Position.X := AxMin.X;
If raquette2.Position.X >= AxMax.X Then raquette2.Position.X := AxMax.X - 5;
end;
AxPos.X := balle.Position.X;
AxPos.Y := balle.Position.Y;
AxPos.Z := balle.Position.Z;
end;
___________________________________
gestion de l'ia (a adapter et a mettre dans la boucle) :
// si la balle viens dans la direction de la raquette CPU
// et surtout quand elle arrive a la moitiée du terrain
if Ball.Direction.Z < [moitiée du terrain] then begin
// si la balle vas vers la gauche on deplace la raquette a gauche
if Ball.Position.X - RaqCPU.Position.X < 0 then RaqCPU.Direction.x := -1
else
// si la balle vas a droite on deplace la raquette a droite
if Ball.Position.X - RaqCPU.Position.X >= 0 then RaqCPU.Direction.x := 1;
// pour stopper la raquette quand elle se trouve sur la tajectoire de la balle
if not inrange(RaqCPU.Position.X, Ball.Position.X - 0.2, Ball.Position.X + 0.2) then
RaqCPU.Move(CPURaqSpeed);
end;
___________________________________
modif FormCreate :
procedure TForm1.FormCreate(Sender: TObject);
begin
menu.Items.AutoCheck:=true;
ScoreJ1 := 0;
ScoreJ2 := 0;
AxMax.X := Mur1.Position.x-1;
AxMin.X := Mur2.Position.x+1;
AxMax.Y := Plafond.Position.Y-1;
AxMin.Y := sol.Position.Y+1;
AxMax.Z := Raquette2.Position.Z-1;
AxMin.Z := Raquette1.Position.Z+1;
cam1.TargetObject := balle;
if D1.Checked then Vitesse.Vb := 0.01;
if D2.Checked then Vitesse.Vb := 0.02;
if D3.Checked then Vitesse.Vb := 0.03;
if D4.Checked then Vitesse.Vb := 0.05;
Vitesse.Vx := -0.005;
Vitesse.Vy := -vitesse.Vb;
Vitesse.Vz := vitesse.Vb;
with Raquette1.Material.Texture do begin
ImageGamma:=2;
Image.LoadFromFile('Raquette1.bmp');
Enabled:=true;
end;
with Raquette2.Material.Texture do begin
ImageGamma:=2;
Image.LoadFromFile('Raquette2.bmp');
Enabled:=true;
end;
with Ciel.Material.Texture do begin
ImageGamma:=2;
Image.LoadFromFile('sky2.bmp');
Enabled:=true;
end;
with mur1.Material.Texture do begin
Image.LoadFromFile('Wall28.bmp');
Enabled:=true;
end;
mur2.Material := mur1.Material;
with Sol.Material.Texture do begin
ImageGamma:=3;
Image.LoadFromFile('Wall28.bmp');
Enabled:=true;
end;
plafond.Material := sol.Material;
end;
___________________________________
voila reste a modifier le reste... bon courage pour adapter l'IA
26 févr. 2006 à 20:34
Bon ce qui est des accents suis trop faineant desole !
Ciao
26 févr. 2006 à 20:31
Ciao
PS: Pour le son je vais encore attendre car Fmod et GlBass ne marche pas chez moi (bug !)