Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Eine Art 'Ballwurf' simulieren (https://www.delphipraxis.net/60106-eine-art-ballwurf-simulieren.html)

Nils_13 3. Jan 2006 11:29


Eine Art 'Ballwurf' simulieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

ich arbeite mommentan an einem kleinen Spielchen.

Wie berechne ich die Wurfbahn in Bezug auf den Winkel und wie stelle ich das ganze dar ?

Matze 3. Jan 2006 11:32

Re: Eine Art 'Ballwurf' simulieren
 
Moin, nutze bitte erst die Suche: Hier im Forum suchenflugbahn, das hatten wir schon.

Nils_13 6. Jan 2006 12:04

Re: Eine Art 'Ballwurf' simulieren
 
Hab ja gesucht, aber nichts wirklich brauchbares gefunden.

Airblader 6. Jan 2006 12:08

Re: Eine Art 'Ballwurf' simulieren
 
Also ich hatte da was interessantes gefunden, hat halt nur ein paar Minuten gedauert:
http://www.walter-fendt.de/phys/mech/wurf.pdf

air

arbu man 6. Jan 2006 12:59

Re: Eine Art 'Ballwurf' simulieren
 
Hab mal eben was zu sammen zusammen gestelt, das ganze gibt bei 45 Grad auch einen ihmo realistischen wurf
Delphi-Quellcode:
var
  wurf:boolean=false;
  xs0,ys0,xs,ys:double;
  g:double=9.81;
  v,w,t,ymax:double;

uses math;

function sinus(angle: Real): Real;
begin
  result := sin(Pi*angle/180);
end;

function cosinus(angle: Real): Real;
begin
  result := cos(Pi*angle/180);
end;

procedure setup;
begin
  v:=strtofloat(edit1.Text);// geschwindigkeit
  w:=strtofloat(edit2.Text);// winkel in grad
  xs0:=v*cosinus(w);
  ys0:=v*sinus(w);
  ymax:=0.5*g*sqr( (v*sinus(w))/g );
  t:=0;
  wurf:=true;
end;

// deltaTime = Zeit die seit dem letzten zeichnen vergangen ist
procedure draw( const deltaTime: double);
begin
  if not wurf then exit;
  t:= t + deltaTime;
  ys:=ys0*t-0.5*g*sqr(t);
  xs:=t*v;
  // mit ys und xs zeichnen
end;

Nils_13 6. Jan 2006 17:53

Re: Eine Art 'Ballwurf' simulieren
 
Delphi-Quellcode:
t:= t + deltaTime;
Inkompatible Typen

faux 6. Jan 2006 17:57

Re: Eine Art 'Ballwurf' simulieren
 
http://www.dsdt.info/grundlagen/sprache/prozfunk.php

Von welchem Typ ist deltaTime bei dir?

JasonDX 6. Jan 2006 17:58

Re: Eine Art 'Ballwurf' simulieren
 
Zitat:

Zitat von Nils_13
Delphi-Quellcode:
t:= t + deltaTime;
Inkompatible Typen

Moment, deltaTime hat gar keinen Typ :stupid:
im Funktionskopf const deltaTime: single nehmen könnte helfen, damit der Compiler auch weiß, dass da eine Gleitkommazahl mitkommt.

greetz
Mike

[Edit]@faux: Bei call-by-reference muss man dem Parameter nicht zwangsweise einen Typ mitgeben, was ein paar Overloads sparen lässt und bei Verwendung von Puffern sehr sinnvoll sein kann.

faux 6. Jan 2006 18:04

Re: Eine Art 'Ballwurf' simulieren
 
Zitat:

Zitat von Chimaira
[Edit]@faux: Bei call-by-reference muss man dem Parameter nicht zwangsweise einen Typ mitgeben, was ein paar Overloads sparen lässt und bei Verwendung von Puffern sehr sinnvoll sein kann.

Jaja, schon klar, nur muss man dann (in Nils' Fall zumindest) die Variable per Casting anpassen. ;)

Grüße
Faux

arbu man 6. Jan 2006 18:11

Re: Eine Art 'Ballwurf' simulieren
 
Zitat:

Zitat von Nils_13
Delphi-Quellcode:
t:= t + deltaTime;
Inkompatible Typen

Oh tut mir leid etws zu viel abgeschnitten deltaTime muss double oder singel sein :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz