![]() |
Andorra 2D Probleme
Liste der Anhänge anzeigen (Anzahl: 1)
Hi, im Anhang ist mein komplettes Projekt, also bitte nicht irgendwie verarbeiten. ;)
Ich habe dabei einige Probleme: Vollbild wird bei Form2 nicht aktiviert. Der Junge auf Form2 läuft nur nach rechts, nicht nach links(das haus sollte er eigentlich ignorieren...) Und wie schaff ichs überhaupt, dass der junge aufhört zu rennen, wenn er angekommen ist? Würde mich freuen, wenn ihr euch das Projekt mal durchschaut, mfG EDIT: dann würde mich auch noch interessieren, wie ich sachen an den Cursor "anhängen" kann... danke, mfG |
Re: Andorra 2D Probleme
4 mal runtergeladen, keine antwort...
wenn keiner helfen kann, gibts dann sowas wie ein Andorra Forum oder bin ich hier in der DP an der besten Adresse? |
Re: Andorra 2D Probleme
Fortschritt:
Damit das Vollbild klappt muss es vor AdDraw.Initialize Aber... damit habe ich nicht mehr mein gewolltes projekt, sondern es wird sofort das zweite Fenster maximiert, allerdings ist es schwarz.. klicke ich nun irgendwo hin, komme ich zum ersten Fenster, aber grau(clBtnFace) ohne meine GUI... weiß jemand warum? |
Re: Andorra 2D Probleme
Wenn du DirectX verwendest wird beim Vollbildmodus nur ein Overlay erzeugt, an der Größe des Fensters ändert sich nichts. Du musst dein Formular vor der Initialisierung noch an die Größe anpassen.
|
Re: Andorra 2D Probleme
Vielen Dank für deine Antwort, ist es auch ohne DirectX möglich? Ich habe mich nämlich noch überhaupt nicht mir DX beschäftigt...
zur besseren Übersicht, eine Liste mit den (noch) aktuellen Problemen: 1. Form 2 öffnet sich zu früh, fenster sind Schwarz bzw. grau 2. Der Junge auf Form zwei läuft nicht wie gewollt(nicht nach links, wenn nach rechts, weiß ich nicht, wie ich ihn zum stoppen bringe) neue probleme, die sich inzwischen aufgetan haben: 3. Bei AdDraw.Canvas.Textout wird #13#10 genauso ignoriert, wie beim normalen Canvas, aber hier möchte ich es nicht mit pattis lösung ersetzen(vorerst...) 4. ich wollte bei der Wormhunter Demo für mich ergänzen, dass er nicht durch die Bäume läuft, grundsätzlich recht einfach, er hat zwar das bild als würde er stehen, allerdings 'schwebt' er weiter... danke an alle, die sich hier die mühe machen. mfg |
Re: Andorra 2D Probleme
Zitat:
Aber das andere, besonders 1 und 2 bekomm ich im Moment einfach nicht hin. Edit: fürs zweite der Quellcode:
Delphi-Quellcode:
procedure TEinheit.Gehen(P: TPoint);
begin if (P.X > X) then begin AnimActive := true; AnimStart := 0; AnimStop := 7; AnimSpeed := 15; XSpeed := 150; DoMove(Form1.AdPerCounter.TimeGap); angeklickt := false; if (P.Y > Y) then begin AnimActive := true; AnimStart := 16; AnimStop := 23; AnimSpeed := 15; YSpeed := 150; angeklickt := false; end else if (P.Y < Y) then begin AnimActive := true; AnimStart := 8; AnimStop := 15; AnimSpeed := 15; YSpeed := 150; angeklickt := false; end; end else if (P.X < X) then begin AnimActive := true; AnimStart := 24; AnimStop := 31; AnimSpeed := 15; XSpeed := -150; angeklickt := false; DoMove(Form1.AdPerCounter.TimeGap); begin if (P.Y > Y) then begin AnimActive := true; AnimStart := 16; AnimStop := 23; AnimSpeed := 15; YSpeed := 150; angeklickt := false; end else if (P.Y < Y) then begin AnimActive := true; AnimStart := 8; AnimStop := 15; AnimSpeed := 15; YSpeed := -150; angeklickt := false; end; end; end; end; |
Re: Andorra 2D Probleme
Jetzt hab ich mal Einheit.Gehen verschönert:
Delphi-Quellcode:
Naja, ich klicke die Einheit an(linke Maustaste) dann klick ich irgendwo anders hin(rechte maustaste).
procedure TEinheit.Gehen(P: TPoint);
begin Aim := P; AnimLoop := true; if (p.x > X) and (p.Y > Y) then // Südost begin AnimActive := true; AnimStart := 40; AnimStop := 47; AnimSpeed := 10; XSpeed := 100; YSpeed := 100; DoMove(Form1.AdPerCounter.TimeGap); end else if (p.x > X) and (p.Y < Y) then // Nordost begin AnimActive := true; AnimStart := 16; AnimStop := 23; AnimSpeed := 15; XSpeed := 100; YSpeed := -100; DoMove(Form1.AdPerCounter.TimeGap); end else if (p.x > X) and (p.Y = Y) then // Ost begin AnimActive := true; AnimStart := 0; AnimStop := 7; AnimSpeed := 15; XSpeed := 100; YSpeed := 0; DoMove(Form1.AdPerCounter.TimeGap); end else if (p.x < X) and (p.Y > Y) then // Südwest begin AnimActive := true; AnimStart := 48; AnimStop := 55; AnimSpeed := 15; XSpeed := -100; YSpeed := 100; DoMove(Form1.AdPerCounter.TimeGap); end else if (p.x < X) and (p.Y < Y) then // Nordwest begin AnimActive := true; AnimStart := 24; AnimStop := 31; AnimSpeed := 15; XSpeed := -100; YSpeed := -100; DoMove(Form1.AdPerCounter.TimeGap); end else if (p.x < X) and (p.Y = Y) then // West begin AnimActive := true; AnimStart := 56; AnimStop := 63; AnimSpeed := 15; XSpeed := -100; YSpeed := 0; DoMove(Form1.AdPerCounter.TimeGap); end else if (p.x = X) and (p.Y > Y) then // Süd begin AnimActive := true; AnimStart := 32; AnimStop := 39; AnimSpeed := 15; XSpeed := 0; YSpeed := 100; DoMove(Form1.AdPerCounter.TimeGap); end else if (p.x = X) and (p.Y < Y) then // Nord begin AnimActive := true; AnimStart := 8; AnimStop := 15; AnimSpeed := 15; XSpeed := 0; YSpeed := -100; DoMove(Form1.AdPerCounter.TimeGap); end else if (p.x = X) and (p.Y = Y) then begin AnimActive := false; end; end; er beginnt zu 'gehen' naja, zuerst springt er etwa 5 Zentimeter dann geht er zwar, aber er dreht sich im kreis.... Also der Sprite bewegt sich richtig, die Bilder sind aber falsch, obwohl die AnimStart und AnimStops 100%ig richtig sind... weiß jemand was ich falsch mache? |
Re: Andorra 2D Probleme
Was brauche ich alles zum Ausführen? Andorra habe ich installiert.
Speziell: - IniLang - GraphicHint Auf den ersten Blick fehlt schon mal ein "<=" oder ">=" bei:
Delphi-Quellcode:
if (P.Y > Y) then
begin ... end else if (P.Y < Y) then begin ... end; |
Re: Andorra 2D Probleme
Hi, ich habe nach Vorbild der Wormhunter Demo das ding etwas umgebaut....
Delphi-Quellcode:
Mit den ShowMessages zeige ich mir Testweise an, ob es vernünftige Werte sind, und das sind sie.
procedure TEinheit.Gehen(P: TPoint);
begin SetDir(round(ArcTan((Y - P.Y) / (X - P.X)))); end; procedure TEinheit.SetDir(ADirection: Integer); var w:integer; begin //Reset the speed variables FYSpeed := 0; FXSpeed := 0; w := ADirection; ShowMessage(IntToStr(w)); //Set the X and the Y speed FXSpeed := round(cos(PI/180*w)*Speed); ShowMessage(IntToStr(FXSpeed)); FYSpeed := round(sin(PI/180*w)*Speed); ShowMessage(IntToStr(FYSpeed)); AnimLoop := true; AnimActive := true; end; Weiters: Ich habe in der Schule noch nichts über sinus cosinus tangens oder arctangens oder sonst was in der Richtung gelernt, und habe mir die Funktionen aus verschiedenen Codes zusammengebastelt.... Fazit: Die Figur geht erstmal(Die Animationsrichtung leg ich fest, wenn das mal klappt), allerdings bewegt sich der Sprite nicht vom Fleck.... weiß jemand warum :gruebel: mfG :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 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