Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [delphix] Zeichenebenen verwalten -> aber wie? (https://www.delphipraxis.net/73063-%5Bdelphix%5D-zeichenebenen-verwalten-aber-wie.html)

mr.winkle 11. Jul 2006 22:19


[delphix] Zeichenebenen verwalten -> aber wie?
 
Ich bin dabei einen Sidescroller zu programmieren - dabei habe ich das Problem, dass wenn ich z.b erst mit
Delphi-Quellcode:
feind:=tfeind.create(dxspriteengine1.engine);
einen Gegner erstelle und danach z.b wolken auf die selbe art erstellt werden diese den Gegner überdecken.

Was ich nun bräuchte wären mehrere Zeichenebenen (Wie bei Photoshop :wink: ) in die dann Hintergrund und Objekte getrennt voneinander gezeichnet werden. Da ich keine Kollision zwischen den beiden Ebenen abfragen muss sollte das möglich sein oder?

Hilft mir da die variable "z" in den Eigenschaften eines timagesprites weiter?
Ich habe auch schon von mehreren Surfaces gehört - aber nichts dazu gefunden.

Bin für jede Hilfe dankbar.

MFG mr.winkle

mr.winkle 11. Jul 2006 23:23

Re: [delphix] Zeichenebenen verwalten -> aber wie?
 
*PUSH* warum will mir eigentlich nie einer antworten? :roteyes:

cruiser 11. Jul 2006 23:54

Re: [delphix] Zeichenebenen verwalten -> aber wie?
 
TFeind, TLayer o.ä. Eine Eigenschaft Layer (meinetwegen vom typ Byte) mitgeben und die Z-Höhe des (2d)Sprites auf den Wert Layer setzen.

Ich geh mal davon aus, dass TFeind ne eigene Klasse ist. Ich hab mich mit DelphiX noch nicht wirklich beschäftigt, wohl aber mit den theoretischen Grundlagen. und mehrere Zeichenflächen verwaltet man einfach durch unterschiedliche Abstände zur Kamera.

mr.winkle 12. Jul 2006 00:10

Re: [delphix] Zeichenebenen verwalten -> aber wie?
 
ja tfeind=class(Timagesprite)

wie definiere ich denn die reihenfolge in der die sprites gezeichnet werden?

cruiser 12. Jul 2006 00:32

Re: [delphix] Zeichenebenen verwalten -> aber wie?
 
Okay.... ich hatte zufällig ne alte unDelphiX-Install hier...

Delphi-Quellcode:
{...}TImageSprite = class(TSprite)
{...}
und

Delphi-Quellcode:
{...}TSprite = class
  {...}
  property X: Double read FX write FX;
  property Y: Double read FY write FY;
  property Z: Integer read FZ write SetZ;
end;{...}
Alles was du meiner Meinung nach noch zu tun hast ist Z auf einen Wert zu setzen, der dem ZeichenLayer entsprechen soll, weil es der einzige Integer-Wert ist. Ob nun aber 0 für Z nah an der Kamera oder weit weg von der Kamera ist musst du selber rausfinden.

Dein Creator müsst also etwa so aussehn:

Delphi-Quellcode:
constructor TUfo.Create(AParent: TSprite{?}); // ? = oder was auch immer *g*
begin
  inherited Create;
  {...}
  Z := 3; // oder deine Zeichenebene halt
end;

pacman1986 12. Jul 2006 01:30

Re: [delphix] Zeichenebenen verwalten -> aber wie?
 
0 ist unten und ab da aufwaerts man kann aber auch - nehmen glaub ich

mr.winkle 12. Jul 2006 02:24

Re: [delphix] Zeichenebenen verwalten -> aber wie?
 
danke für die hilfe, mit z klappts wunderbar.
Ich dachte die sei nur für 3d zeug :oops: aber jetz funktionierts alles :dp:

cruiser 12. Jul 2006 03:31

Re: [delphix] Zeichenebenen verwalten -> aber wie?
 
Ist quasi 2½D 2 Achsen und Layer :zwinker:


Tip: Wenn du noch Sprite-Rotation brauchst, solltest du evtl. von TImageSpriteEx ableiten. Zumindest ist das bei der unDelphiX Sprite-Engine, die ich hier hab mit dabei. Ausserdem unterstützt die Ex-Class Alphablending (ich leit das einfach mal frech von den zusätzlichen Properties ab. Ich habs weder probiert noch das Manual dazu befragt). Zumindest Alphablending sollt sich bei Wolken doch hübsch machen... evtl. noch zufällige Transparenz in nem bestimmten Bereich :mrgreen:


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