AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi 2-D Adventure programmieren
Thema durchsuchen
Ansicht
Themen-Optionen

2-D Adventure programmieren

Ein Thema von MarquiseDeSade · begonnen am 7. Sep 2007 · letzter Beitrag vom 29. Nov 2007
 
Benutzerbild von MarquiseDeSade
MarquiseDeSade

Registriert seit: 18. Apr 2007
Ort: Mainz
55 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: 2-D Adventure programmieren

  Alt 29. Nov 2007, 18:25
Hallo

Das Adventure nimmt allmählich Form an, auch wenn sicherlich einige Sachen sehr umständlich programmiert worden sind Aber Übung macht ja bekanntlich den Meister.

Nun zu einem neuen Problem.....

Ich lasse zwei gelbe Kreise folgendermaßen durch das Erdgeschoss meiner "map" laufen:

Delphi-Quellcode:
rocedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin{of procedure}
with Image1.Canvas do
begin{of controls}
case Key of
    VK_LEFT: begin
        pen.color:=cl3DLight;
        brush.color:=cl3DLight;
        ellipse(Grosx1,Grosy1,Grosx2,Grosy2);
        ellipse(Kleinx1,Kleiny1,Kleinx2,Kleiny2);
        Grosx1:=Grosx1-5;
        Grosx2:=Grosx2-5;
        Kleinx1:=Kleinx1-5;
        Kleinx2:=Kleinx2-5;
        pen.color:=clblack;
        brush.color:=clyellow;
        ellipse(Grosx1,Grosy1,Grosx2,Grosy2);
        ellipse(Kleinx1,Kleiny1,Kleinx2,Kleiny2);
        Key := 0;

    end;
    VK_RIGHT: begin
        pen.color:=cl3DLight;
        brush.color:=cl3DLight;
        ellipse(Grosx1,Grosy1,Grosx2,Grosy2);
        ellipse(Kleinx1,Kleiny1,Kleinx2,Kleiny2);
        Grosx1:=Grosx1+5;
        Grosx2:=Grosx2+5;
        Kleinx1:=Kleinx1+5;
        Kleinx2:=Kleinx2+5;
        pen.color:=clblack;
        brush.color:=clyellow;
        ellipse(Grosx1,Grosy1,Grosx2,Grosy2);
        ellipse(Kleinx1,Kleiny1,Kleinx2,Kleiny2);
        Key := 0;
    end;
    VK_UP: begin
        pen.color:=cl3DLight;
        brush.color:=cl3DLight;
        ellipse(Grosx1,Grosy1,Grosx2,Grosy2);
        ellipse(Kleinx1,Kleiny1,Kleinx2,Kleiny2);
        Grosy1:=Grosy1-5;
        Grosy2:=Grosy2-5;
        Kleiny1:=Kleiny1-5;
        Kleiny2:=Kleiny2-5;
        pen.color:=clblack;
        brush.color:=clyellow;
        ellipse(Grosx1,Grosy1,Grosx2,Grosy2);
        ellipse(Kleinx1,Kleiny1,Kleinx2,Kleiny2);
      Key := 0;
    end;
    VK_DOWN: begin
        pen.color:=cl3DLight;
        brush.color:=cl3DLight;
        ellipse(Grosx1,Grosy1,Grosx2,Grosy2);
        ellipse(Kleinx1,Kleiny1,Kleinx2,Kleiny2);
        Grosy1:=Grosy1+5;
        Grosy2:=Grosy2+5;
        Kleiny1:=Kleiny1+5;
        Kleiny2:=Kleiny2+5;
        pen.color:=clblack;
        brush.color:=clyellow;
        ellipse(Grosx1,Grosy1,Grosx2,Grosy2);
        ellipse(Kleinx1,Kleiny1,Kleinx2,Kleiny2);
      Key := 0;
  end;{of controls}
end;{of procedure}
Nun würde ich gern eine Kollisionskontrolle benutzen, damit die zwei Kreise nicht überall langlaufen können. Ihr müsst euch das so vorstellen, dass ich die Draufsicht einer Schule (Erdgeschoss) mit Canvas gezeichnet habe und nun nicht will, dass die Spielfigur die Wände (Rectangles) übermalt. Sprich, wie realisiere ich es, dass die Spielfigur nicht über ein angegebenen Rechteck "drüber" laufen kann.

Gruß
Tobias
  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 16:51 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