Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi mit DrawGrid einen Level Editor ? [Neues Prob] (https://www.delphipraxis.net/42041-mit-drawgrid-einen-level-editor-%5Bneues-prob%5D.html)

klomann3 12. Mär 2005 14:36


mit DrawGrid einen Level Editor ? [Neues Prob]
 
Hallo,
Also ich will einen LevelEdi proggen, nur weiß ich nicht wie ich anfangen soll.
Mir kam die DrawGrid Kompo in den Sinn, nur hab ich leider kP wie ich in die Zellen nen Tile Setze.
Also, falls ihr Beispiel Codes oder irgendeine Idee zur Umsetzung eines LevelEdis mit der DrawGrid Kompo habt, bitte ich um eure Posts.

Danke schonmal für eure Bemühungen.

Khabarakh 12. Mär 2005 14:50

Re: mit DrawGrid einen Level Editor ?
 
Mal ein Beispiel, du kannst es natürlich auch anders handhaben:

1. Du lädst alle verschiedenen Teile in Bitmaps (WaterBmp, GrassBmp, ...)
2. Du speicherst den Typ jedes Teils in einem Array mit denselben Dimensionen wie dein DrawGrid (Feld: Array[0..5,0..5] of TKind)
3. Du lädst im OnDrawCell das jeweilige Bitmap:
Delphi-Quellcode:
const
  Hoehe = 32;   // Größe eines Teiles
  Breite = 32;

[...]

procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var WaterBmp: TBitmap;
begin
  case Feld[ACol,ARow] of
    Grass: DrawGrid1.Canvas.Draw(ACol*Breite,ARow*Hoehe,GrassBmp);
    Water: [...]
  end;
end;
[edit] Oder auch:
Delphi-Quellcode:
Grass: DrawGrid1.Canvas.Draw(Rect.Left,Rect.Top,GrassBmp);

klomann3 12. Mär 2005 15:02

Re: mit DrawGrid einen Level Editor ?
 
Irgendwie werde ich aus dem Code nicht schlau... könntest du dazu vll ein bespielprog mit comments anhängen?, dafür währe ich dir sehr dankbar.

Airblader 12. Mär 2005 15:05

Re: mit DrawGrid einen Level Editor ?
 
Zitat:

Zitat von klomann3
Irgendwie werde ich aus dem Code nicht schlau... könntest du dazu vll ein bespielprog mit comments anhängen?, dafür währe ich dir sehr dankbar.

Ist doch ganz einfach ;)

Du zeichnest jedes Feld einzeln udn gibst dabei an, ob es Gras, wasser, stein oder sonstwas ist.
jenachdem, was es ist, zeichnest du halt was anderes.
so bekommst dann dein level

air

Khabarakh 12. Mär 2005 17:14

Re: mit DrawGrid einen Level Editor ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Da es immer noch nicht klar ist, hier mal ein Beispiel (mit zwei verschiedenen Feldern):

klomann3 13. Mär 2005 08:25

Re: mit DrawGrid einen Level Editor ?
 
Da ich anhand des Beispiels jetzt einen Editor geproggt habe (naja, bisher kann man nur nen Tileset laden und ein augewähltes Tile auf die Map setzen), steht ich vor einem neuen Prob, welches ich irgendwie nicht gelöst bekomme. Also: Wenn ich ein Tile auswähle, dies geschieht bei einem Klick auf die TImage Komponente die das Tileset beinhaltet, und auf die Map klicke, dann kann ich zunächst ganz normal ein Tile setzen.
Aber wenn ich ein neues Tile aus dem Tileset wähle und dann irgendwo auf die Map klicke, dann wird die Stelle die ich anklicke mit dem Tile besetzt UND AUCH die Stelle die vorher ausgwählt war.
Um das ganze ein wenig zu verdeutlichen habe ich auch 2 Screenshots zu meinem Problem im Anhang.

Mein Problem ist genauer beschrieben auf Bild2 zu sehen.

EDIT: Hab jetzt mal den Source in den Anhang geschmissen, vll gehts damit besser *g*.

EDIT 2: alles ausm Anhang rausgenommen, Problem hat sich erledigt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 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