AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Delphi Projektarbeit - 2D Autorennen

Ein Thema von EpicProgger5000 · begonnen am 7. Feb 2014 · letzter Beitrag vom 3. Mär 2014
Antwort Antwort
Seite 2 von 3     12 3   
11. Feb 2014, 06:08
Dieses Thema wurde am "11. Feb 2014, 07:08 Uhr" von "r_kerber" aus dem Forum "Fragen / Anregungen zur DP" in das Forum "Sonstige Fragen zu Delphi" verschoben.
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#12

AW: Delphi Projektarbeit - 2D Autorennen

  Alt 11. Feb 2014, 16:46
Ups... Hat das Programm bei Euch funktioniert?

Fahren die Auto's alles "auf" der Straße?

Hab die Version gerade für Mac-OS gelinkt und musste feststellen, dass die CPU-Geschwindigkeit mit in die Position einfließt. Hier muss ich nochmal "nacharbeiten"...

Mavarik

Geändert von Mavarik (11. Feb 2014 um 16:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Delphi Projektarbeit - 2D Autorennen

  Alt 11. Feb 2014, 17:58
Unter Win7 und Win8 sieht es gut aus.

Kannst Du mal grob umreißen, wie Du das aufgebaut hast?
Bild als Hintergrund und wie kontrollierst Du die Strecke und Winkel?
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
EpicProgger5000

Registriert seit: 7. Feb 2014
3 Beiträge
 
#14

AW: Delphi Projektarbeit - 2D Autorennen

  Alt 11. Feb 2014, 18:40
Hallo,
vielen vielen dank für eure tollen Beiträge.
Leider muss ich sagen, dass ich kaum etwas verstanden hab .
Unser Problem ist,
a) wie lasse ich zwei autos gleichzeitig fahren ? geht das mit dem Timer?
wenn ja, was macht der Timer denn, bzw. wie muss man ihn programmieren, hatten wir in der Schule nicht. denn im moment kann ja nur immer eine taste gedrückt werden
b) wie können wir das spiel so umändern das evtl sogar eine lenkdynamik entsteht, also auch 45° Winkel gefahren werden können & das auto, sobald es sich nach rechts dreht, auch nach unten Gas gibt, weil das tut es bei uns nicht.
c) wir haben jetzt ne bitmap vorgezeichnet & die autos auch.stellt das irgendein problem dar?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#15

AW: Delphi Projektarbeit - 2D Autorennen

  Alt 11. Feb 2014, 19:28
Es gibt analog zum Delphi-Referenz durchsuchenTForm.OnKeyDown auch noch einen Delphi-Referenz durchsuchenTForm.OnKeyUp.
Bei diesen Events schaltest du einfach für das Auto die entsprechende Aktion
  • lenkt nach links
  • lenkt nach rechts
  • beschleunigt
  • bremst
In der Timer Methode wertest du diese Stati einfach aus
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#16

AW: Delphi Projektarbeit - 2D Autorennen

  Alt 11. Feb 2014, 20:17
Für Spiele und ähnliches ist MSDN-Library durchsuchenGetAsyncKeyState besser geeignet als OnKeyDown und OnKeyUp. Mit der Routine kann man abfragen, ob eine bestimmte Taste „jetzt gerade“ gedrückt ist.

Geht z.B. so (im Ereignishandler vom Timer):
Delphi-Quellcode:
// VK_LEFT steht für die Pfeil-Nach-Links-Taste. Solche Konstanten gibt es auch noch für andere Tasten.
if GetAsyncKeyState(VK_LEFT) < 0 then
begin
  // Auto ein Stück nach links bewegen
end;
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#17

AW: Delphi Projektarbeit - 2D Autorennen

  Alt 11. Feb 2014, 22:16
@EpicProgger5000

So richtig werde ich aus deinen Problemen nicht schlau, und eigentlich wundert es mich nicht, dass du kaum was verstanden hast, denn eigentlich habe ich bisher nicht verstanden was für ein Spiel du programmieren möchtest.

Ok, es soll ein 2D Spiel sein. Damit ist vermutlich gemeint, dass es eine Ansicht von oben ist. Ist das so? Denn eigentlich ist das Spiel C64 Pole Position auch nur ein 2D Spiel. Und es ist in Grunde einfacher als man denkt, man muss nur Kurven zeichnen können. Der Rest sind paar blinkende Grafiken und etwas Brumbrum Sound.

Die wichtigste Frage ist aber, soll es ein 2D Spiel wie bei Mavarik? Also ein rundes Feld in dem die Autos ihre Runden drehen, oder eher wie Speed Racer, wo man das Auto von oben sieht und immer nur ein Teil der Straße? Ist im Grunde nur eine bessere Variante von Donkey.bas.

Also anhand deiner Fragen würde ich meinen, dass ihr noch Anfänger seit. Das Mavarik Spiel ist nicht wirklich kompliziert, aber man muss zumindest die Grundlagen beherrschen. Meiner Meinung nach sogar etwas einfacher ist C64 Pole Position. Vielleicht ist da mehr zu machen, aber weniger kompliziert (meine Meinung).

Deshalb gehe ich davon aus, dass es eher ein Rennspiel wie Speed Racer/Donkey.bas ist. Du solltest es also konkretisieren, dann bekommst du auch bessere Hilfe.

Genial von der Idee ist C64 - Fort Apokalypse oder doch C64- Zeppelin? Eines von beiden ist es, evtl auch beide. Das Spiel sieht auf jeden Fall sehr kompliziert aus, mit all den tollen Trafik (zumindest für damalige Zeit). Im Grunde ist das Spiel unheimlich einfach aufgebaut, nur die Idee dahinter ist genial. Die Map ist im Grunde eine normale Textdatei. Was man im Spiel also sieht ist eine Textdatei die rauf und runter bewegt wird. Nur wurden die Buchstaben verändert. Im Spiel wird sozusagen "A" gegen einen Felsen ausgetauscht. Dahinter stecht aber immer noch eine Textdatei.

Das Ganze ist als Spielidee auch ganz leicht in Delphi umzusetzen, nur statt der Änderung der Schrift kann jede Buchstabe z. B. für ein 8x8 Pixel Bitmap stehen. Der Vorteil, es gibt Zeichen die das Rennauto befahren kann, schwer befahren kann, gar nicht befahren kann. Im Grunde eine Textdatei, sieht aber wie ein Grafik aus.

Man kann es aber auch anders machen. Ist nur eine Idee. Aber ohne ein Konzept ist es schwer Tipps zu geben.

Wie gesagt, zeichne meinetwegen das Spiel in Pantbrush, aber sag was du genau machen willst.
  Mit Zitat antworten Zitat
EpicProgger5000

Registriert seit: 7. Feb 2014
3 Beiträge
 
#18

AW: Delphi Projektarbeit - 2D Autorennen

  Alt 12. Feb 2014, 06:57
Also nochmal ne genauere Problemerläuterung:
-> wir wollen ein Autorennen in Vogelperspektive programmieren.
Das soll alles jedoch relativ einfach gehalten werden,da wir nicht sonderlich viel Zeit haben und auch so nicht viel Plan haben.
Wir wollen auf jeden Fall
a) das zwei Autos gleichzeitg fahren können also man auch zwei Tasten gleichzeiig drücken kann
b) das Auto fährt, wenn wir nach rechts lenken immernoch nachrechts weiter, also wir bekommen es nicht hin, dass das Auto nach dem lenken nach unten bzw. in eine andere richtung fährt
c) haben wir im paint autos & Strecke vorgezeichnet (ist ja auch bitmap) und wissen jetzt aber nicht, wie man dort ne begrenzung einbaut bzw. programmiert, sodass das auto nicht mehrauf den Straßenrand fährt

Könnt ihr uns da helfen?
danke euch aber bisher
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#19

AW: Delphi Projektarbeit - 2D Autorennen

  Alt 12. Feb 2014, 08:35
Nur mal zu Problem b)
Man muss sich die Zustände der Autos merken, d.h. in welche Richtung er im Moment fährt und auch wie schnell. Wird nun eine Taste gedrückt ändert sich halt die Richtung.
In der Funktion (wahrscheinlich über einen Timer gesteuert) in der die Autos bewegt werden wird das Auto abhängig von der gespeicherten Geschwindigkeit um N Pixel bewegt und abhängig von der gespeicherten Richtung ändert sich halt die X oder die Y Position um die N Pixel (oder bei 45° halt X und Y um N/Wurzel(2) Pixel?

Wär auf jeden Fall eine gute Gelegenheit ein bißchen OOP mit zu lernen.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#20

AW: Delphi Projektarbeit - 2D Autorennen

  Alt 12. Feb 2014, 08:46
Also nochmal ne genauere Problemerläuterung:
-> wir wollen ein Autorennen in Vogelperspektive programmieren.
Ich Denke Du meinst eher in "Draufsicht"

Das soll alles jedoch relativ einfach gehalten werden,da wir nicht sonderlich viel Zeit haben und auch so nicht viel Plan haben.
Wir wollen auf jeden Fall
a) das zwei Autos gleichzeitg fahren können also man auch zwei Tasten gleichzeiig drücken kann
KeyDown "a" Links_Spieler_1 := true;Rechts_Spieler_1 := false;
Keydown "d" Rechts_Spieler_1 := true;Links_Spieler_1 := false;

KeyUp "a" Links_Spieler_1 := false;
KeyUp "d" Links_Spieler_1 := false;

OnTimer if Links_Spieler_1 = true then Wagen_1 Richtung := Richtung - 45;
...
b) das Auto fährt, wenn wir nach rechts lenken immernoch nachrechts weiter, also wir bekommen es nicht hin, dass das Auto nach dem lenken nach unten bzw. in eine andere richtung fährt
Logisch wenn Du blind

Delphi-Quellcode:
procedure fahrtost;
 begin
 Image2.Left:=Image2.Left+5;
 end;
machst.
Delphi-Quellcode:
if Wagen_1.Richtung = 0 then
 Image2.Top := Image2.Top - 5; // Immer in 5er Schritten ohne unterschiedliche Geschwindigkeit.?!?
else
If Wagen_1.Richtung = 45 then
  begin
    Image2.top := Image2.Top - 5;
    Image2.Left := Image2.Left + 5;
  end
usw.
c) haben wir im paint autos & Strecke vorgezeichnet (ist ja auch bitmap) und wissen jetzt aber nicht, wie man dort ne begrenzung einbaut bzw. programmiert, sodass das auto nicht mehrauf den Straßenrand fährt
Da Deine "Autos" in einem 5er Raster fahren, lege Dir ein Array an, welches die Strecke in diesem Raster darstellt.
Delphi-Quellcode:
var
  Strecke : Array [0..200,0..100] of Boolean; // für ein Image der Größe 1000x500
begin
  Strecke[5,7] := true; // hier dar ein Auto fahren
  Strecke[4,7] := false; // hier nicht.

  if Strecke[Image2.Left div 5,image2.Top div 5] then
    Auf_der_Strecke := true
  else
    Auf_der_Strecke := false;
  ...
end;
Könnt ihr uns da helfen?
danke euch aber bisher
Helfen ja, aber nicht die ganze Arbeit machen!

Mavarik
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:26 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