![]() |
TimageSprite und MousePosition
aloha,
ich wollt mal gern wissen, wie ich am besten überprüfe, ob ich mit meiner maus über einem sprite (auf Dxdraw) bin. brauch das, damit ich beim plazieren von objekten nicht übereinander baue (das andere das sie sich schneiden aufgrund der größe mach ich auch noch). ciao haegar |
Re: TimageSprite und MousePosition
Ich hatte mal ein ähnliches Problem und habs umgangen indem ich den MAuszeiger ausgeblendet hab und stattdessen ein ImageSprite genommen hab. Das hatte für mich gleich zwei Vorteile: Ich konnte Kollisionen leichter feststellen und ich konnte eigene Mauszeiger leichter einbauen.
Wars überhaupt das was du gemeint hast? (was meinst du mit übereinanderbauen) |
Re: TimageSprite und MousePosition
ja, die idee mit dem imagesprite (als ersatz für den mauszeiger WÄHREND des plazierens), hat nur irgendwie net geklappt, kannste mir da mal auf die sprünge helfen?
mit übereinanderbauen meine ich einfach nur, das sich die objekte nicht überschneiden sollen (is ein lvl-editor). gruss haegar |
Re: TimageSprite und MousePosition
Also bei mir siehts so aus:
Delphi-Quellcode:
[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]
type
TCursorSprite = Class(TImageSprite) procedure DoCollision(Sprite:TSprite; var Done:Boolean); override; procedure DoMove(MoveCount: Integer); override; end; //... procedure TCursorSprite.DoCollision(Sprite:TSprite;var Done:Boolean); begin inherited; if (Sprite is TItem) and Sprite.Visible then //statt TItem die Klasse deiner Levelbausteine //... end; procedure TCursorSprite.DoMove(MoveCount: Integer); begin inherited; Collision; end; procedure TForm1.DXDrawMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin MouseCursor.x := X; MouseCursor.y := Y; MouseCursor.Collision; end; |
Re: TimageSprite und MousePosition
muss ich das dann irgendwie als varibale deklarieren??
oder is das bei dir:
Delphi-Quellcode:
var MouseCusor:TCursorSprite;
gruss haegar |
Re: TimageSprite und MousePosition
Zitat:
Delphi-Quellcode:
und mit
MouseCursor := TCursorSprite.Create
Delphi-Quellcode:
Das Bild ändern
MouseCursor.Image := DeinBild
|
Re: TimageSprite und MousePosition
Die Methode von oben funktioniert bis jetzt einigermaßen aber sie liefert alle Kollisionen des Sprites das man als Mauszeiger benutzt (zum Bauen/Platzieren vielleicht ganz praktisch). Ich hätte bei mir jetzt aber gern die Kollision mit nur einem Punkt des Sprites eben so wie ein normaler Cursor nur auf einen Punkt reagiert. Dazu hab ich versucht Dem TCursorSprite Objekt noch ein TSprite als eigenschaft zu geben (1x1 Pixel, kein Bild) und davon die Kollisionen zu bestimmen. Die Kollisionen sind aber vollkommen an der falschen Stelle (links oberhalb der eigentlichen Kollision). Hat jemand eine Idee woran das liegen könnte oder weiß jemand wie man es besser machen kann?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz