AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Mauern als hinderniss
Thema durchsuchen
Ansicht
Themen-Optionen

Mauern als hinderniss

Ein Thema von schrimm · begonnen am 21. Feb 2007 · letzter Beitrag vom 22. Feb 2007
Antwort Antwort
schrimm
(Gast)

n/a Beiträge
 
#1

Mauern als hinderniss

  Alt 21. Feb 2007, 22:13
Also ich schäme mich schon fast sowas zu fragen. (hab schon gesucht, aber nix gefunden)
Ich hab so eine Art spiel, wo man durch pfeiltasten ein Tanimate durch eibne "welt" steuern kann.
nun sind da ein paar mauern, ich weiß aber nicht, wie ich die sinnvoll als hindernisse machen kann.
danke schonmal
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Mauern als hinderniss

  Alt 21. Feb 2007, 22:33
Ein tipp: es ist nicht sinnvoll, sowas mit tanimate bzw. der vcl zu machen. setz dich lieber mit tcanvas auseinander und zeichne dann selber. (Zu tCanvas gibt es glaub ich auch tutorial auf dsdt.info, ansonsten mal in die delphi hilfe gucken und rumprobieren)

Zum thema Welt: ich würd das mit einem 2d-array machen. hab jetzt aber keine zeit, da viel drüber zu schreiben, ich schreib vllt. morgen noch was dazu...
  Mit Zitat antworten Zitat
schrimm
(Gast)

n/a Beiträge
 
#3

Re: Mauern als hinderniss

  Alt 22. Feb 2007, 14:06
Aslo ich hab jetzte mal bisschen rumprobiert, es ist sogar was rausgekommen:
Delphi-Quellcode:
unit Uhaupt;
...
type
  mauerna= array [1..2,1..2,1..2]of integer;
  davida = array [1..2,1..2] of integer;
...

var
  Form1: TForm1;
  mxy : mauerna;
  dxy : davida;
  taste: char;

implementation

{$R *.DFM}
procedure hindernis;
 var k:integer;
 begin
  k:=1;
  for k:=1 to 2 do
   begin
     if ((dxy[1,2]>=mxy[k,1,1])and(dxy[1,1]<=mxy[k,1,2]))and//x-werte vergleichen
        ((dxy[2,2]>=mxy[k,2,1])and(dxy[2,1]<=mxy[k,2,2])) //y-werte vergleichen

     then
   begin
    case taste of
    'u': form1.im.top:=Form1.im.top+2;
    'd': form1.im.top:=form1.im.top-2;
    'l': form1.im.left:=form1.im.left+2;
    'r': form1.im.left:=form1.im.left-2;
    end;//ende case of
   end;//ende if-then
  end;//ende for..do
end;//ENDE hindernis

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin

[... die bewegung des männels]
 

  //arrays
   //[a,b,c] a=mauernnummer b=x/y-wete c=anfangs/endwert
mxy [1,1,1]:=Image1.left;
mxy [1,1,2]:=Image1.left+40;
mxy [1,2,1]:=Image1.top;
mxy [1,2,2]:=Image1.top+34;

mxy [2,1,1]:=Image2.left;
mxy [2,1,2]:=Image2.left+40;
mxy [2,2,1]:=Image2.top;
mxy [2,2,2]:=Image2.top+34;

 //[1,x]=x-werte
 //[2,x]=y-werte

dxy [1,1]:=Im.left;
dxy [1,2]:=Im.left+38;
dxy [2,1]:=Im.top;
dxy [2,2]:=Im.top+73;
//array ende
hindernis;
end;
end.
Macht das sinn, das so zu machen?
  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 23:34 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