AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Andorra 2D Frage: Wie antworte ich auf eine Kollision?
Thema durchsuchen
Ansicht
Themen-Optionen

Andorra 2D Frage: Wie antworte ich auf eine Kollision?

Ein Thema von Spiderpig_GER_15 · begonnen am 11. Mai 2008 · letzter Beitrag vom 12. Mai 2008
Antwort Antwort
Benutzerbild von Spiderpig_GER_15
Spiderpig_GER_15

Registriert seit: 17. Mär 2008
298 Beiträge
 
Delphi 7 Personal
 
#1

Andorra 2D Frage: Wie antworte ich auf eine Kollision?

  Alt 11. Mai 2008, 21:46
Hi,

bin gerade dabei Andorra zu lernen, un habe vor ein Fangen Spiel zu Programmieren.
Ich bin so weit das man 2 figuren steuern kann die dann über den bildschirm flitzen, nur
ich weiß nicht wie ich schauen kann ob die sich berührt(kollidiert) haben.

Habe keine Ahnung wie das geht, aus den Beispielen kann ich es auch nicht entnehmen, hoffe
mir kann jemand helfen

MfG

Spiderpig
---Zufall ist das Inkognito Gottes---
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

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

Re: Andorra 2D Frage: Wie antworte ich auf eine Kollision?

  Alt 11. Mai 2008, 21:52
Wenn du die Spriteengine verwendest, dann funktioniert dies eigentlich ganz einfach. Schau dir mal in den Demos
  • Wormhunter
  • PixelCheck
  • Breakout
die Methode "DoCollision" sowie den Aufruf von "Collision" an.

Wenn du die Spriteengine nicht verwendest, musst du manuell überprüfen ob sich die beiden Grenzrechtecke der Grafiken überschneiden.
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 Spiderpig_GER_15
Spiderpig_GER_15

Registriert seit: 17. Mär 2008
298 Beiträge
 
Delphi 7 Personal
 
#3

Re: Andorra 2D Frage: Wie antworte ich auf eine Kollision?

  Alt 11. Mai 2008, 22:31
ich kriege es immernoch nicht hin

Delphi-Quellcode:

type
  TMario = class(TImageSprite)
    private
    protected

    public
      constructor Create(AParent:TSprite);override;
      procedure GoRight ;
      procedure GoLeft ;
      procedure GoUp ;
      procedure GoDown ;
      procedure SetStartPosition;
      procedure DoCollision(Sprite: TSprite; var done: boolean); override;

  end;
Delphi-Quellcode:
procedure TMario.GoRight;
begin
inherited;
Image:=MyImageList.Find('MarioRIGHT');
X:=X + 0.4;
MyMario.AnimStart:=1;
MyMario.AnimStop :=2;
MyMario.AnimLoop:=true;
MyMario.AnimActive:=true;
MyMario.AnimSpeed:=30;
Collision;
end;
und

Delphi-Quellcode:
procedure TMario.DoCollision(Sprite: TSprite; var done: boolean);
begin
  if Sprite is TSnake then
  begin
    showmessage('geht');
  end;
end;
ich weiß nciht was daran falsch ist, es tut sich einfach garnichts

MfG Spiderpig
---Zufall ist das Inkognito Gottes---
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#4

Re: Andorra 2D Frage: Wie antworte ich auf eine Kollision?

  Alt 11. Mai 2008, 23:14
Hab schon 'ne Weile nix mehr mit Andorra gemacht, aber fehlt da nicht noch 'ne "DoMove"-Routine? Bei mir ruft diese "Collision" auf.

Delphi-Quellcode:
procedure TSpriteFigure.DoCollision(Sprite: TSprite; var Done: boolean);
begin
  CollisionEdges := [];
  FHitsEnemy := FALSE;
  FWallCollision := FALSE;

  if FDead then
    Exit;

  GetCollisionEdges;

  if (Sprite is TWall) then
    begin
      // ...
    end;
end;

procedure TSpriteFigure.DoMove(TimeGap: Double);
begin
  inherited;

  FTimeGap := TimeGap;
  FTargetSprite := nil;

  // ...

  Collision;

  XSpeed := 0;
  YSpeed := 0;

  if FWillDie then
    begin
      // ...
    end;
end;
Und soweit ich weiß, macht das die Demo auch so?
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Andorra 2D Frage: Wie antworte ich auf eine Kollision?

  Alt 12. Mai 2008, 02:25
LOL MAchst ein spiel mit Mario
Das ist mein Vorname
Nickel
  Mit Zitat antworten Zitat
Benutzerbild von Spiderpig_GER_15
Spiderpig_GER_15

Registriert seit: 17. Mär 2008
298 Beiträge
 
Delphi 7 Personal
 
#6

Re: Andorra 2D Frage: Wie antworte ich auf eine Kollision?

  Alt 12. Mai 2008, 17:09
ja,
du kennst nich zufällig superMario?
Ist ein bischen kopiert, vor allem Die Figur

Achso, danke für die Tipps, habs hinbekommen, der Fehler war ein anderer...
*ist mir aber peinlich welcher*

MfG Spiderpig
---Zufall ist das Inkognito Gottes---
  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 06:30 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