Einzelnen Beitrag anzeigen

tar

Registriert seit: 21. Jun 2007
5 Beiträge
 
Delphi 2005 Architect
 
#6

Re: canvas - waagerechter wurf mit timer

  Alt 21. Jun 2007, 15:01
hallo ChrisE,

ich habe ein wenig herumprobiert. deine methode ändert nichts an den problemen, sie verkürzen nur das zeitinterval, welches aber nichts an den y-abständen ändert (durch beschleunigung wohl nicht möglich).

ich bin weiterhin am verzweiffeln, wie genau er das (vor allem letzte X) ausrechnet. die koordinaten stimmen einfach irgendwie nicht - trotz verwendung der richtigen formeln.

sieht man deutlich an diesem bild:

http://www.pro-lamer.net/d32_wl2.png

Delphi-Quellcode:
procedure Tfrm.Button1Click(Sender: TObject);
begin
// Eingabe
  a:=9.81/2;
  h:=strtoint(edt_in_h.text);
  v:=strtofloat(edt_in_v.text);
  e:=strtoint(edt_in_e.text);

  if (h<300) and (h>-1) and (e<281) and (e>19) and (v>0) then
  begin
    i:=0;
    x:=15;
    y:=frm.img.height-h;

    buildimg(e);
    circle(x,y);
    frm.tmr.enabled:=true;
  end
  else
  edt_out_w.text:='Eingaben falsch!';
end;

procedure Tfrm.tmrTimer(Sender: TObject);
begin
  if (y<frm.img.height) then
  begin
    inc(i);
    t:=i*frm.tmr.interval/50;
    y:=y+(a*t);
    x:=15+(v*t);
    circle(x,y);
  end
  else
  begin
    w:=round(x);
    if (w>e) and (w<e+20) then
    begin
      edt_out_w.text:=inttostr(w)+' Treffer!';
      frm.tmr.enabled:=false;
    end
    else
    begin
      edt_out_w.text:=inttostr(w)+' Daneben!';
      frm.tmr.enabled:=false;
    end;
  end;
end;
rest wie oben
  Mit Zitat antworten Zitat