![]() |
Problem beim umsetzten vom Spiel "Achtung die Kurve&quo
Ich möchte das Spiel
![]() Bin aber schon daran gescheitert, das die Schlange sich überhaupt richtig bewegt. Bis jetzt bewegt sie sich nämlich nur eckig im 45 winkel, sie soll aber wie im richtigen spiel ne Kurve fahren...Hat einer ne idee wie ich das hinbekomme??? |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
Zitat:
Flare |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
mit welcher zeichenfunktion soll ich dass denn zeichnen?
|
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
Ich würde Dir auch Dringend empfehlen die Sin Cos werte ganz am Anfang des Spieles ein mal zu berechnen und in einem Array ab zu legen, sonst geht ne Menge Performance verloren wenn du die immer wieder neu berechnen läst.
Zwecks deinem Zeichen Problem. Empfehle ich dir DelphiX ( ![]() |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
also kann das delphix für delphi 6 irgendwie nicht runterladen. naja dass kann ich auch später noch machen.
ich weiss immer noch nicht so genau wie ich die kurve zeichnen soll. also ich speicher zu jeder linie den winkel änder den je nachdem welche taste gedrückt wird. aber wie ich dann den neue Teil der Linie zeichnen soll versteh ich irgendwie nicht so ganz... |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
Also gut wir abstrahieren ein bischen.
Du hast nun einen Punkt und einen Winkel. Nun willst du diesen Bewegen. Was bassiert du berechnest dir mit Hilfe der Sin Cos Tabellen einen neuen Punkt. Der Trick, du speicherst dir noch kurz die Alten Koordinaten. So kannst du nun von alten Koordinaten zu neuen eine Linie Malen lassen. Je kleiner du die Schrittgeschwindigkeit wählst dest "Runder" werden dann deine Kurven. Alles Klar ? |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
hello
ich bin dabei, dieses spiel auch umzusetzen und mit einigen neuen funktionen auszustatten ich habe nun delphiX installiert, habe aber leider keine Ahnung wie ich diese linien generieren soll kann mir bitte jemand helfen? danke |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
Da in der Spielbeschreibung Sätze wie
Zitat:
|
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
@mr-unbekannt.
Delphi-Quellcode:
Bist du dir sicher das du dich nicht erst mal ein bischen in DlephiX einarbeiten willst bevor du gleich ein spiel damit schreibst ?
Procedure TForm1.Button1Click(Sender: TObject);
Begin dxdraw1.surface.Fill(0); dxdraw1.surface.Canvas.pen.color := clred; dxdraw1.surface.Canvas.MoveTo(10, 10); dxdraw1.surface.Canvas.LineTo(100, 100); dxdraw1.surface.Canvas.Release; dxdraw1.Flip; End; |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
hmm, der code ist ja verständlich und funktioniert auch...
aber wie kann ich nun machen, dass diese linien periodisch länger werden? mit hilfe eines timers? vielen dank |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
Zitat:
Löschen ging bei mir auch problemlos, wahrscheinlich ging es bei dir nur nicht, weil die *.exe noch lief (-> Prozess beenden) //Edit: @Topic: Ja der DXTimer eignet sich perfekt dafür ;) MFG Maximus |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
Zitat:
Strg+Alt+Entf ist das einzige, was noch geht. Irgendwie funzt das nicht so wie's soll, auch schonmal öfters gedownloadet. Erst installieren, dann ZATACKA doppelgeklickt |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
@mr-unbekannt
Mir scheint du hast so was noch nie gemacht. Du hast 2 Möglichkeiten. 1. Speichern aller zwischenStellen und bei jedem Render dieser oder etwas besser 2. Du verzichtest auf das dxdraw1.surface.fill(0); und tust das Löschen wenn du es brauchst, selber machen. Dann brauchst du immer nur eine Letzte Koordinate speichern. |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
sodala
ich habe es geschafft meine 6 bunten linien zu erzeugen... so:
Delphi-Quellcode:
s ist die schrittweite...
procedure TForm1.TimerRotTimer(Sender: TObject);
var s: double; begin s := 1; lrot(s); form1.flaeche.surface.Canvas.Release; form1.flaeche.Flip; end; procedure lrot(s: Double); begin arot := arot+ s; brot := brot+ s; form1.flaeche.Surface.canvas.Pen.Color := clRed; form1.flaeche.Surface.canvas.Pen.Width := 5; form1.flaeche.surface.Canvas.MoveTo(xrot, yrot); form1.flaeche.surface.Canvas.LineTo((xrot + round(arot)), yrot + round(brot)); form1.flaeche.surface.Canvas.Release; form1.flaeche.Flip; end; folgendes problem: die linien werden nur stufenweise länger... -> schaut schlecht aus & die linien sollen nicht alle in die gleiche richtung starten... kann mir da bitte wieder jemand helfen? danke |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
@mr-unbekannt
Delphi-Quellcode:
und wegen deiner Drehrichtungen empfehle ich dir Dringend sin, und Cos
procedure TForm1.TimerRotTimer(Sender: TObject);
var s: double; begin s := 1; lrot(s); // form1.flaeche.surface.Canvas.Release;// Brauchst net da lrot das schon macht. // form1.flaeche.Flip;// Brauchst net da lrot das schon macht. end; Auch würde es sich empfehlen wenn du Pro spieler eine Eigene Klasse machst. Dann hast du alle Variablen zusammen. und du brüchstest keine globalen arot und brot variablen ( sehr schlechter programmierstiel , Vermeide Globale Variablen wohs nur geht). |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
Zitat:
|
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
Na indem du mit nem Timer deine Werte immer erhöhst.
|
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
welche linien werden periodisch länger?
|
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
@dino
Die Linien der Spieler werden länger in dem Spiel hat jeder User ne "Linie" die immer länger wird ähnlich dem Spiel "Snake" und sobald ein Spieler die Line eines anderen Berührt stirbt er glaubig, oder so |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
und wie war das mit dem periodisch?
|
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
periodisch heißt in einem gleich bleibenden Zeitabstand
das heißt die linien werden REGELMÄßIG länger @corpsman: wie geht zum Beispiel hier eine Klasse? |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
ich dachte i^x wäre periodisch
x wäre dann linear |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
dino, ich weiß zwar nicht was du meinst, könntest du dich bitte auf das Thema beziehen?
wie funktioniert denn das mit sin und cos? ist mein ansatz richtig, wie ich die linien länger mache? |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
Liste der Anhänge anzeigen (Anzahl: 1)
@dino
i^x wäre nur in einem Faktorraum Periodisch. @mr-unbekannt Ich hoffe mal das du das Sample verstehst , denn ich habe eigentlich nicht vor das Komplette Spiel für dich zu schreiben. |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
hello!
also, danke nein das will ich ja gar nicht, dass du mir das ganze programm schreibst... aber danke also, ich habe den code gott sei dank verstanden! das einzige was bei mir nicht funktioniert ist die steuerung über die tasten 1 und q warum fuktioniert denn das nicht: (???)
Delphi-Quellcode:
die escape-zahl fuktioniert ja auch?!?
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin If key = 27 Then close; If Key = 31 Then player_rot.Rot(5); If Key = 51 Then player_rot.Rot(-5); vielen dank ach ja: die linien sollen ja kollidieren.. meine idee wäre, am anfang der linie zu ermitteln auf welcher farbe sich der anfang befindet (wenn er zum beispiel blau ist soll die linie halten) |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
Hast es schon mal mit der
![]() Die habe ich extra mal erstellt, weil ich die ganzen Einstellungssachen auch immer nie weis Also VK_1 und VK_Q. In der Tabelle siehst du auch sofort das du die hex Zahlen genommen hast und nicht die Dez Zahlen. |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
hmmm... darauf hätte ich auch selber kommen können... :oops:
die steuerung über die maus fuktioniert nicht... hat jemand eine ahnung was das sein könte?
Delphi-Quellcode:
procedure TForm1.flaecheMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin If button = mbRight Then player_blau.angle(3); If button = mbLeft then player_blau.angle(-3); end; |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
Mach das mal in DXDraw1.mousedown
|
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
flaeche ist mein DXDraw1...
liegt es vielleicht daran, dass ich mit dem laptop arbeite und nur eine winzige USB-Maus verwende? EDIT: Nein, es funktioniert, aber nur wenn ich total oft klicke ändert sich die richtung nur langsam.... |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
Na du machst 3 grad Schritte das ist ja auch nicht viel.
Stelle es eben hoch auf Deutlich mehr. Aber mal im Vertrauen eine derartige steuerung finde ich sehr "Merkwürdig" ich würde da eine Pfeiltastensteuerung deutlich vorziehn. |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
Liste der Anhänge anzeigen (Anzahl: 1)
oh, ich habe diese schritte auf 10 umgestellt
nein, das problem ist, ich habe 6 versch. linien, und diese werden von 6 untersch. tasten gesteuert die blaue linie eben mit der maus... wenn ich die maustaste gedrückt halte, passiert nichts, bei den anderen tasten schon... EDIT: hmmm... könntest du dir bitte mal den momentanen code ansehen?!? es ist nur noch die blaue linie sichtbar.... ???keine Ahnung warum??? |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
Liste der Anhänge anzeigen (Anzahl: 1)
Oh wenn ich das Sehe kriege ich Kopfweh.
Also Den DXTimer darfst du nur 1 mal Pro anwendung benutzen. Es ist üerbhaupt kein Problem die Zeitfunctionen aller Spieler über einen timer zu stkallieren. du brauchst halt ein klein wenig Logik dahinter. Wenn du schon die Timer aus hast und Manuell Einschaltest solltest du sie Unbedingt erst nach dem initialisieren der Player Variablen einschalten. Da du sonst evtl auf Nil Pointer zugreifst. und wenn du schon die Ascii werte der Tastatur einbindest dann mach wenigstens über jede Zeile einen entsprechenden Kommentar welche Taste das nun ist. Sorry wegem Ton , aber wenn ich so was sehe da hacks bei mir aus. Ich habe als kleine Entschuldigung mal versucht dieses Chaos zu ordnen, allerdings nur soweit das man es sich wenigstens wieder einigermasen ansehn kann. Tipp : zum Testen Fullscreen = false ist wesentlich Monitor schonender. die weiteren Tipps sind im Code. |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
danke, nein ich bin froh um jede kritik, da mein programmierstil erst in der lernphase ist
es freut mich dass du dich so aktiv mit meinem problem beschäftigst! :thumb: Herzlichen Dank! mr |
Re: Problem beim umsetzten vom Spiel "Achtung die Kurve
Na dann hab ich ja nochmals Glück gehabt.
Bei weiteren Problemen meldest dich ebend. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz