Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3309 connectés 

 


Dernière réponse
Sujet : [Quick basic] arghhhh je galere jetez un coup deuil svp....
djfm oui!!!!! ca marche!!!!!! merci!!

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
djfm oui!!!!! ca marche!!!!!! merci!!
tgrx ... avec sb=50 bien sur... (oups :crazy: )
tgrx

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

djfm 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

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)