[Quick basic] arghhhh je galere jetez un coup deuil svp....

arghhhh je galere jetez un coup deuil svp.... [Quick basic] - Programmation

Marsh Posté le 05-06-2001 à 19:13:29    

je c vraiment pa dou vient le pb, je galere depuis une semaine , svp dites moi ce kil va pas
c un pong en Qbasic, mais on peu ratraper la balle kune fois... pkoi??? je c , donner le prog entier et dire demerdez vous c pas top mais l a je c bvraiment pa koi faire...
 
 
screen 12
 
posx=4
posy=4
dirx=1
diry=1
dirx2=-1
diry2=-1
x=340
y=475
 
ON KEY(12) GOSUB decalg
on key(13) gosub decald
on key(3) gosub quitter
key(12) on
key(13) on
key(3) on
 
line(x,y)-((x+50),(y+5)),2,BF
 
do
circle(posx,posy),8
for pdt=1 to 40000
pdt2=pdt+3.14159256
next pdt
circle(posx,posy),8,0
if posx+dirx=637 or posx+dirx=3 then dirx=(dirx*(-1))
if posy+diry=3 then diry=(diry*(-1))
if posy+diry=475 then gosub enbas
posx=posx+dirx
posy=posy+diry
loop 'until len(inkey$)
 
decalg:
for k=1 to 20
x=x-1
line(x,y)-((x+50),(y+5)),2,BF
line((x+50),y)-((x+51),(y+5)),0,BF
next k
return
 
decald:
for k=1 to 20
x=x+1
line(x,y)-((x+50),(y+5)),2,BF
line((x-2),y)-((x-1),(y+5)),0,BF
next k
return
 
quitter:
end
return
 
enbas:
 
 
for sb=1 to 50
if posy+diry=((x-1)+sb) then touche=1
next sb
if touche=1 then diry=(diry*(-1))
if touche=0 then gosub quitter
touche=0
return


---------------
Do you serve a purpose,Or purposely serve?
Reply

Marsh Posté le 05-06-2001 à 19:13:29   

Reply

Marsh Posté le 05-06-2001 à 19:34:36    

djfm a écrit a écrit :

 
for sb=1 to 50
if posy+diry=((x-1)+sb) then touche=1
next sb




 
Ben ici je vois que tu compares une variable suivant y avec une variable suivant x... c'est un peu con non ?
Du coup a chaque fois touche=0 parce que l'egalite n'est jamais verifiee, la partie s'arrete et c'est pour ca que tu ne peux toucher qu'une fois la balle (en fait tu la touches jamais... :) )
 
Ce qu'il faudrait ecrire c'est :
 
(on vire la boucle qui sert a rien)
if ((posx+dirx>=x) and (posx+dirx<x+sb)) then touche=1

Reply

Marsh Posté le 05-06-2001 à 19:35:26    

... avec sb=50 bien sur... (oups :crazy: )

Reply

Marsh Posté le 05-06-2001 à 20:07:16    

oui!!!!! ca marche!!!!!! merci!!


---------------
Do you serve a purpose,Or purposely serve?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed