AGB  ·  Datenschutz  ·  Impressum  







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

GetSpriteAt-Problem bei Andorra 2D

Ein Thema von Acuaplano · begonnen am 8. Mai 2013 · letzter Beitrag vom 21. Mai 2013
 
Acuaplano

Registriert seit: 8. Mai 2013
29 Beiträge
 
#1

GetSpriteAt-Problem bei Andorra 2D

  Alt 8. Mai 2013, 12:03
Gudden Tag,

ich habe mich heute wieder in meinem Andorra 2D Projekt versucht. Soweit funktionierte alles bis das Problem mit dem Interagieren kam. Das Spiel soll ein 2D Spiel aus der Vogelperspektive werden. Wenn der Held vor einem Objekt steht und man eine Taste drückt soll eine Prozedur vom Objekt ausgeführt werden, wobei es jedoch universell gehalten werden soll. Da sollte der GetSpriteAt Befehl aushelfen, jedoch gibt's da die Probleme. Die Funktion findet nämlich nichts an der entsprechenden Stelle, selbst wenn ich die Koordinaten direkt eingebe. Gibt es vielleicht andere Möglichkeiten zum Interagieren oder hat jemand Erfahrung mit dem Problem?

Hier die wichtigen Quellcodeteile:

Delphi-Quellcode:
TObjekt = class(TImageSprite)
    private
    protected
    public
      procedure UseObject; virtual; abstract;
  end;

  TStein = class(TObjekt)
    private
    protected
    public
      constructor Create(AParent: TSprite); override;
      procedure UseObject; override;
  end;

...

TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: word; Shift: TShiftState);
    procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
  private
    { Private-Deklarationen }
  public
    AdDraw: TAdDraw;
    AdPerCounter: TAdPerformanceCounter;
    AdImageList1: TAdImageList;
    AdSpriteEngine: TSpriteEngine;
    Selected: TSprite;
    procedure Idle(Sender: TObject; var Done: boolean);
    { Public-Deklarationen }
  end;

...

procedure TForm1.FormKeyDown(Sender: TObject; var Key: word; Shift: TShiftState);
begin
  if key = 32 then
  begin
    Selected := AdSpriteEngine.GetSpriteAt(150,500);
    if Selected <> nil then
    begin
      TObjekt(Selected).UseObject;
      TestVar := 1;
    end
    else
    begin
      TestVar := 2;
      Selected := nil;

    end;
  end;
  Mit Zitat antworten Zitat
 


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 13:58 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