Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [Andorra 2d] Menü(bzw was anderes als das level) zeichnen (https://www.delphipraxis.net/102970-%5Bandorra-2d%5D-menue-bzw-anderes-als-das-level-zeichnen.html)

fishbrain 7. Nov 2007 17:34


[Andorra 2d] Menü(bzw was anderes als das level) zeichnen
 
Hi,
ich bin grad dabei mich ein bischen in Andorra einzufinden und ein jump and run zu programmiern.
Ich weis nur nicht wie ich z.b wenn gewonnen ein anderes level bzw ein menü zeichnen kann.
In den demos hab ich nichts gefunden und in den forenbeiträgen leider auch noch nichts.
Kann mir hierbei jemand helfen?

igel457 7. Nov 2007 20:41

Re: [Andorra 2d] Menü(bzw was anderes als das level) zeichne
 
Hallo,

ich würde einfach eine (meinetwegen globale) Variable einführen, die den aktuellen Spielestatus festhält: Also Hauptmenü, im Spiel, im Auswertungsbildschirm und so weiter. Je nach dem auf welchen Wert die Variable gesetzt ist, zeichnest du anstatt des Spieles (also AdSpriteEngine.Move, Draw, Dead etc.) zum Beispiel ein Menü - dieses kannst du ja entweder selbst schreiben (also einfach mit Bildern für jeden Menüpunkt), oder du verwendest das mitgelieferte GUI-System. Wie du dieses verwendest, findest du im Andorra-Thread hier: http://www.delphipraxis.net/internal...ct.php?t=97168

Vielleicht kannst du deine Frage auch noch ein wenig konkretisieren. Danke fürs verwenden meiner Engine und viel Erfolg,
Andreas

fishbrain 7. Nov 2007 20:45

Re: [Andorra 2d] Menü(bzw was anderes als das level) zeichne
 
mein problem ist nicht ein menü zu erstellen sonder ich weis nicht wie ich mache das ein level nicht mehr gezeichnet wird.
z.b hab ich einfach gesagt lade 2tes level wenn erstes level gewonnen und dann hat es das alte level einfach übermalt.
ich hoffe mein problem wird dadurch klarer.

Progman 7. Nov 2007 21:20

Re: [Andorra 2d] Menü(bzw was anderes als das level) zeichne
 
Hallo, solche Probleme löse ich so:
Ich erstelle mir einen Procedure-Typ
Delphi-Quellcode:
Type
  TmyProc = Procedure;

var
  myProc = TmyProc;
In der Renderschleife zwischen BeginScene und EndScene steht nur myProc.
Für jede Szene gibt es ne eigene procedure "DrawScene".
Dann mach ich mir ne einfache State-Mashine, die das verwaltet und je nach Scene dann die richtige procedure zuweist.
Delphi-Quellcode:
  case Scene of
    1: myProc := DrawScene1;
    2: myProc := DrawScene2;
   usw....
so hat man in der Renderschleife, die ja doch zeitkritsch ist, keine Abfragen, sondern kann zügig immer das Richtige zeichnen.

mimi 8. Nov 2007 13:06

Re: [Andorra 2d] Menü(bzw was anderes als das level) zeichne
 
Das eigentliche ist das du im Timer oder wo du halt zeichnest entscheidest was gerade gezeichnet wird.

Das ist Praktisch überall das gleiche.
Du musst halt nur da wo du zeichnest entscheiden, was du zeichnest.

Z.b. beim Level Ende wenn du gewonnen hast, könntest du auch einfach eine Goable byte Varibale setzten
Und je nach dem welche Wert drinen steht zeichnest du drauf los.

Am besten ist natürlich, wenn du pro Seite eine Procedure hast z.b.
DrawGame - für das Zeichnen des Spiele Fehleds
DrawMainMenu - zeichnet das Menu was beim Start Kommt
DrawESC menu - wenn das Spiel Pausiert wird z.b.
DrawOptionen - Zeichnet die Optionen die man einstellen kann und soweiter.

So bleibt es einigermaßen übersichtlich.

OregonGhost 8. Nov 2007 13:17

Re: [Andorra 2d] Menü(bzw was anderes als das level) zeichne
 
Auch wenn er für C# und XNA geschrieben wurde, dürfte dieser Artikel etwas für dich sein. Er beschreibt sehr ausführlich eine elegante Lösung für dein Problem.

fishbrain 8. Nov 2007 16:40

Re: [Andorra 2d] Menü(bzw was anderes als das level) zeichne
 
ich glaub ich habs raus.
danke

fishbrain 8. Nov 2007 19:26

Re: [Andorra 2d] Menü(bzw was anderes als das level) zeichne
 
Hm ich hab wohl doch noch ne frage:
kann man mit andorra nen klick auf ein bild(bereich) abfragen oder muss man das mit form1.mousmove die x und y koordinaten übertragen und dann schaun ob der klick auf dem bild war?
Ich habs zwar jetzt geschafft das andorra was anderes zeichnet würde aber gern wissen wie ich mach das man andorra nicht mehr sieht dafür form1. Lösungsmöglichkeiten dazu(aber sehr unraktisch): andorra auf ein unendlich kleines panel legen, oder das fenster minimiern in dem andorra läuft. Mit Addraw.Destroy hab ichs schon versucht.

igel457 9. Nov 2007 14:30

Re: [Andorra 2d] Menü(bzw was anderes als das level) zeichne
 
Du kannst das AdDraw auf einer Seite eines PageControls erzeugen und das Menü zum Beispiel auf eine andere Seite. Möchtest du das Menü anzeigen, so rufst du die Andorra-Zeichenfunktionen gar nicht mehr auf und wechselst zu der entsprechenden Pagecontrolseite.

fishbrain 9. Nov 2007 14:36

Re: [Andorra 2d] Menü(bzw was anderes als das level) zeichne
 
und wenn ich das menü in form1 haben will?
oder is das unmöglich?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:36 Uhr.
Seite 1 von 2  1 2      

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