Autor |
Beitrag |
Anxiety
Hält's aus hier
Beiträge: 2
|
Verfasst: Di 27.06.06 12:00
Hallo Leute
ich und ein Kumpel sollen für Informatik ein Spiel programmieren. Es handelt sich um ein Spiel, bei dem sich 2 Spieler den Ball hin-und her köpfen. Jetzt haben wir nur ein Problem bei der Programmierung der Flugkurve des Balles:
Die Bahnkurve haben wir mit Hilfe von Punkten (und mathematischem Hintergrundwissen  ) bereits berechnet.
Jetzt ist nur die Frage, wie wir diese Kurve in das Programm einfügen können, sodass sich der Ball genau an der Kurve entlang bewegt? Der Ball ist als Image programmiert.
Danke für eure Hilfe
|
|
azubi_20
      
Beiträge: 593
WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
|
Verfasst: Di 27.06.06 12:06
Delphi-Quelltext 1: 2:
| xKoord := image.top + image.heigth div 2 yKoord := image.left + image.witdh div 2 |
gibt die Koordinaten des Mittelpunktes des images an.
ACHTUNG : der Koordinaten-Ursprung befindet sich in der linken oberen Ecke
|
|
Anxiety 
Hält's aus hier
Beiträge: 2
|
Verfasst: Do 29.06.06 16:36
ich weiß nicht, ob ich was falsch machen..aber bei meiner version von Delphi (D6) kennt er die Funktion "xKoord" und "yKoord" nicht.
Was mir außerdem noch unklar ist:
wie bekommt man den Ball dazu, sich zu bewegen (und eben später dann an der Kurve entlang)??
|
|
crowley
      
Beiträge: 406
Win XP, Win Vista, Mandriva, Ubuntu
Delphi 4-8, Delphi 2006, Delphi 2007
|
Verfasst: Fr 30.06.06 08:06
xKoord und yKoord sind Variablen, die du dir deklarieren solltest
in welcher form auch immer (schleife, timer, ...) du deinen "ball" bewegen möchtest... dafür brauchst du doch die koordinaten des "balles"... und den richtest du auf deiner "flugkurve" aus...
|
|
templer
Hält's aus hier
Beiträge: 7
|
Verfasst: So 02.07.06 13:58
hi,
ich bin der kumpel, von dem oben die rede war, der auch an dem projekt mitarbeitet. erstmal danke! der ball bewegt sich jetzt auf einer parabel von links nach rechts
naja soweit, so gut; jetzt haben wir nur folgendes problem:
der ursprung des koordinatensystems beginnt in delphi ja in der linken oberen ecke. und parabeln werden generell von links nach rechts dargestellt; wie bekomme ich delphi nun dazu, meinen ball auch von rechts nach links entlang einer parabel zu bewegen?? muss ich dazu einen neuen ursprung, also ein neues koordinatensystem deklarieren??, und wenn ja wie??
im moment sieht mein quelltext folgendermaßen aus:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Timer1Timer(Sender: TObject); begin
y := imball1.top + imball1.height div 2; x := imball1.left + imball1.width div 2; u := ((25847/10000000)*sqr(x))-((19861071/10000000)*x)+(462551776/1000000); imball1.Left := round(x); imball1.Top := round(u); |
y, x und u sind vom typ real.
wäre nett, wenn ihr uns auch bei diesem poblem weiterhelfen könntet
Moderiert von Tino: Code- durch Delphi-Tags ersetzt
|
|
templer
Hält's aus hier
Beiträge: 7
|
Verfasst: Mo 10.07.06 20:23
...
heißt das, dass ihr auch keine ahnung habt ?!?
falls doch - dann postet bitte mal euren vorschlag; thx
|
|
Fighter#1
      
Beiträge: 787
Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
|
Verfasst: Mo 10.07.06 20:51
Wo ist das Problem?
Du meinst einfach das der Ball in die andere Richtung fährt?
Einfach X am Anfang setzen (z.B. im OnCreate vom Form) und dann aus
Delphi-Quelltext 1: 2:
| x := imball1.left + imball1.width div 2; x := imball1.left - imball1.width div 2; |
und ans Ende des Timers setzen, sieht dann so aus:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.Timer1Timer(Sender: TObject); begin u := ((25847/10000000)*sqr(x))-((19861071/10000000)*x)+(462551776/1000000); imball1.Left := round(x) ; imball1.Top := round(u) ; x := imball1.left - imball1.width div 2; end; |
_________________ Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
|
|
root_at_localhost
      
Beiträge: 191
|
Verfasst: Mo 10.07.06 21:18
also so wie ich das sehe wird der Wert der Variable y nicht verwendet, das kommt mir schonmal falsch vor. Pack mal das ganze Projekt (*.dpr, *.pas, *.dfm) in eine zip-Datei und stell es hier rein, an dem schnipsel kann man ja echt nix sehen...
|
|
templer
Hält's aus hier
Beiträge: 7
|
Verfasst: Di 11.07.06 10:53
ja die variable y wird nicht verwendet. mir is auch im nachhinein aufgefallen, dass der y-wert des balles mit der flugkurve nichts zu tun hat.
|
|
Fighter#1
      
Beiträge: 787
Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
|
Verfasst: Di 11.07.06 14:17
Erklär bitte nochmal dein Problem.
Soweit ich das verstanden habe, löst meine Quelltext änderung dein Problem schon, wenn man sich alles durchliest.
_________________ Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
|
|
templer
Hält's aus hier
Beiträge: 7
|
Verfasst: Di 11.07.06 22:06
ja, dein quelltext löst das problem.
mal schaun vllt ergibt sich während des proggens noch ein wieteres problem, aber falls nicht is die sache damit erledigt
thx
|
|
templer
Hält's aus hier
Beiträge: 7
|
Verfasst: Mi 19.07.06 15:41
so es ist geschafft
das Prog läuft (naja so halbwegs)
ich stells mal zum Download rein; falls ihr dann noch irgendwelche Anregungen oder Verbesserungsvorschläge habt könnt ihr euch gerne bei mir melden.
(PS: Spielfiguren sind einfach 3 Lehrer ^^ ... unkreativ aber was solls)
Einloggen, um Attachments anzusehen!
|
|
azubi_20
      
Beiträge: 593
WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
|
Verfasst: Mi 19.07.06 16:44
der ball schlingert immer so komisch, soll dass so sein?
|
|
templer
Hält's aus hier
Beiträge: 7
|
Verfasst: Mi 19.07.06 18:08
naja nich wirklich. Ich weiß auch nicht wieso das so ist; ich schätz, dass es irgendein fehler mim zufallsgenerator ist (liefert zufallszahlen zwischen 1 und 3; je nach zahl wird eine bestimmte flugkurve ausgeführt, zb: pos 1 nach pos 6; pos 1 nach pos 5; pos 1 nach pos 4; pos 2 nach pos 6 usw.)
aber hab ehrlich gesagt keine ahnung 
|
|
templer
Hält's aus hier
Beiträge: 7
|
Verfasst: Mi 13.09.06 14:50
ich hab noch ein bisschen an meinem Programm weitergearbeitet - sound + hintergrundmusik und die grafik ist etwas verändert
jetzt möchte ich in das ganze auch noch eine Netzwerkvariante einbauen; habe allerdings überhaupt keine ahnung, wie das ganze gehn soll, da ich ein absoluter neuling in sachen programmierung bin.
es soll hat am ende so sein, dass spieler 1 die linke spielfgur steuert und spieler 2 die rechte
das ganze muss dann über einen speziellen port ablaufen, wobei dann ständig informationen über die position des balles und der spielfiguren versand werden müssen - oder?!
nur wie kann ich das programmieren ?
wäre nett, wenn ihr mir hierbei helfen könntet
MFG
|
|
wulfskin
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: Mi 13.09.06 15:30
Hallo, neue Frage neuer Thread  !
Außerdem gibt es davon schon etliche im Forum. Bei den Tutorial ist eine Anleitung wie man Daten versenden kann. Jetzt muss t du dir halt überlegen, welche Daten du übertragen möchtest und dir dafür ein passendes Protokoll überlegen.
Am einfachsten wäre es wohl, einfach die Zufallszahl zu übertragen, die Flugbahn können dann beide selbständig berechnen. Wenn die Flugbahn noch von zusätzlichen Parameter bestimmt ist, dann diese mitübertragen.
Wichtig ist, dass, wie gesagt, die Flugbahn beide selber berechnen können, dann sparst du dir unnötigen Traffic. Wenn es dir nicht sicher genug ist, kannst du ja zwischendurch abgleichen, aber ich denke für die einfachen Zwecke sollte es reichen!
Viele Grüße,
Hape
_________________ Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
|
|