AGB  ·  Datenschutz  ·  Impressum  







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

[Andorra]2D-Karte wie bei Diablo2

Ein Thema von freak4fun · begonnen am 31. Dez 2007 · letzter Beitrag vom 1. Jan 2008
Antwort Antwort
Benutzerbild von freak4fun
freak4fun

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

[Andorra]2D-Karte wie bei Diablo2

  Alt 31. Dez 2007, 19:55
Hi Leute,
ich hantiere seit einiger Zeit mit Andorra herum. Nun hab ich auch passende Grafiken und eine Spielidee.

Ich habe eine Karte erstellt, verschiedene Grafiken geladen (Spielfigut, Wege, Bäume) und nun folgende Probleme.

1. Sichtbarkeit:
Wie man auf dem angehhängten Screenshot sieht, wird die Spielfigur von der Landschaft überdeckt, was natürlich nicht sein darf. Ich habe versucht das über den (Tiefen-)Index zu regeln, allerding passt diese Lösung nicht für gleichrangige Objekte, also zum Beispiel Baum und Figur. Und immer prüfen ob alle Objekte wie zum vorherigen passen halte ich für unperforment. Wie kann man also prüfen welche Objekte sichtbar sind und ggf. andere überdecken. Besonders schwierig halte ich das für Häuser.

2. Kollisionsabfrage
Beim Fluss oder so gehts ja noch, aber wie frage ich Kollisionen beim Baum ab, da ist ja praktisch nur der Fuß. Bin für jede Hilfe dankbar.

MfG
f4f
Miniaturansicht angehängter Grafiken
map_210.jpg  
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: [Andorra]2D-Karte wie bei Diablo2

  Alt 31. Dez 2007, 20:01
Ich schlage vor, gleichwertige Objekte von oben nach unten zu sortieren. Dann wird die Figur verdeckt, wenn sie hinter dem Baum steht, aber nicht, wenn sie davor steht.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

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

Re: [Andorra]2D-Karte wie bei Diablo2

  Alt 31. Dez 2007, 20:06
Um die Objekte in der richtigen Reihenfolge anzuzeigen schreibe einfach so etwas wie z.B.:
Delphi-Quellcode:
procedure TMySprite.DoMove(timegap:double);
begin
  Z := round(X);
end;
Den Hintergrund musst du entsprechend weit hinter verlagern. So ähnlich mache ich das auch in der "WormHunter" Demo.
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
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#4

Re: [Andorra]2D-Karte wie bei Diablo2

  Alt 31. Dez 2007, 22:01
Was die Kollisionen mit dem Baum angeht, würde ich den Baum komplett ignorieren, aber einen "Dummy-Sprite" anlegen, wo die Wurzel sein soll. Mit dem kannst du ja dann die Kollisionen auswerten.
Und bei den Häusern wirst du z.B. bei einem Dachvorsprung nicht drum herumkommen, das Objekt in mehrere Sprite zu zerlegen, die teilweise über bzw. unter der Figur liegen (je nach Bedarf).
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

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

Re: [Andorra]2D-Karte wie bei Diablo2

  Alt 1. Jan 2008, 11:59
Du könntest für jedes Objekt eine "Kollisionsmap" bestehend aus Rechtecken speichern und in der DoCollision Routine eine Kollision mit diesen prüfen.
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
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: [Andorra]2D-Karte wie bei Diablo2

  Alt 1. Jan 2008, 13:25
Alternativ könnte man auch - um die Geschwindigkeit zu erhöhen - eine Kollisions-Map mit Bitvektoren realisieren, also ein zweidimensionales array aus Bitvektoren, die man zum Feststellen einer Kollision nur mit der Kollisionsmap der Spielfigur and-en muss. Der Speicherverbrauch dürfte nicht allzu groß sein.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

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

Re: [Andorra]2D-Karte wie bei Diablo2

  Alt 1. Jan 2008, 13:59
Das ist natürlich auch eine Möglichkeit und lässt sich direkt durch überschreiben von "TImageSprite.CreateMask" erreichen:
Delphi-Quellcode:
procedure TMyImageSprite.CreateMask;
var
  bmp:TBitmap;
begin
  if (FPixelCheck) then
  begin
    if FShape <> nil then FreeAndNil(FShape);
    FShape := TAdBimapShape.Create(round(width),round(height);

    bmp := TBitmap.Create;
    try
      bmp.LoadFromFile('myspriteshape.bmp');

      TAdBitmapShape(FShape).Mask.AssignBitmap(bmp);

    finally
      bmp.Free;
    end;
  end;
end;
PixelCheck muss jedoch auf "true" gesetzt werden.
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
Benutzerbild von freak4fun
freak4fun

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

Re: [Andorra]2D-Karte wie bei Diablo2

  Alt 1. Jan 2008, 15:53
Danke! Werd ich mir dann mal alles in Ruhe anschauen.
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  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 03:25 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