![]() |
Mauern als hinderniss
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 :-D |
Re: Mauern als hinderniss
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... |
Re: Mauern als hinderniss
Aslo ich hab jetzte mal bisschen rumprobiert, es ist sogar was rausgekommen:
Delphi-Quellcode:
Macht das sinn, das so zu machen?
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 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