AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Andorra 2D Probleme

Ein Thema von Vasco da Gama · begonnen am 11. Aug 2009 · letzter Beitrag vom 26. Aug 2009
Antwort Antwort
Vasco da Gama

Registriert seit: 2. Aug 2009
131 Beiträge
 
Delphi 2009 Professional
 
#1

Andorra 2D Probleme

  Alt 11. Aug 2009, 14:23
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
Angehängte Dateien
Dateityp: zip strategiespiel_150.zip (2,75 MB, 23x aufgerufen)
Flo
Programmiere inzwischen hauptsächlich mit C++. Nicht böse werden
  Mit Zitat antworten Zitat
Vasco da Gama

Registriert seit: 2. Aug 2009
131 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Andorra 2D Probleme

  Alt 12. Aug 2009, 18:01
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?
Flo
Programmiere inzwischen hauptsächlich mit C++. Nicht böse werden
  Mit Zitat antworten Zitat
Vasco da Gama

Registriert seit: 2. Aug 2009
131 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Andorra 2D Probleme

  Alt 14. Aug 2009, 12:06
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?
Flo
Programmiere inzwischen hauptsächlich mit C++. Nicht böse werden
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Andorra 2D Probleme

  Alt 14. Aug 2009, 12:13
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.
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Vasco da Gama

Registriert seit: 2. Aug 2009
131 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Andorra 2D Probleme

  Alt 14. Aug 2009, 14:43
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
Flo
Programmiere inzwischen hauptsächlich mit C++. Nicht böse werden
  Mit Zitat antworten Zitat
Vasco da Gama

Registriert seit: 2. Aug 2009
131 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Andorra 2D Probleme

  Alt 15. Aug 2009, 11:02
Zitat von Vasco da Gama:
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...
Punkt 4 ist erledigt, kleiner Fehler von mir...

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;
Flo
Programmiere inzwischen hauptsächlich mit C++. Nicht böse werden
  Mit Zitat antworten Zitat
Vasco da Gama

Registriert seit: 2. Aug 2009
131 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Andorra 2D Probleme

  Alt 18. Aug 2009, 13:32
Jetzt hab ich mal Einheit.Gehen verschönert:
Delphi-Quellcode:
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;
Naja, ich klicke die Einheit an(linke Maustaste) dann klick ich irgendwo anders hin(rechte maustaste).
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?
Flo
Programmiere inzwischen hauptsächlich mit C++. Nicht böse werden
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

Re: Andorra 2D Probleme

  Alt 22. Aug 2009, 02:45
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;
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Vasco da Gama

Registriert seit: 2. Aug 2009
131 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Andorra 2D Probleme

  Alt 26. Aug 2009, 09:54
Hi, ich habe nach Vorbild der Wormhunter Demo das ding etwas umgebaut....
Delphi-Quellcode:
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;
Mit den ShowMessages zeige ich mir Testweise an, ob es vernünftige Werte sind, und das sind sie.
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

mfG
Flo
Programmiere inzwischen hauptsächlich mit C++. Nicht böse werden
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:00 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