Autor Beitrag
a|mless
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mo 05.05.08 15:00 
Hallo liebe Gemeinde, ich bräuchte da ma hilfe ;)

Folgendes Problem:

Ich will ein spiel programmieren, das natürlich auch mehrere level beinhalten soll.
um diese level zu erstellen, hab ich schon einen leveleditor, mit dem ich die level schreiben kann. dieser sieht ungefähr so aus, das ich ein memo habe, in dem verschiedene zahlen stehen (z.b. 0 für luft, 2 für wand etc.). Auf knopfdruck werden die in eine paintbox gezeichnet.
im spiel an sich haben wir jedoch keine paintbox, sondern ein image, da die paintbox von dem männchen ansonsten überschrieben würde.

Wenn das spiel startet soll dann diese textdatei ausgelesen und die level daraus geladen werden, nur wie geht das? (p.s. ganz so gut bin ich nicht in delphi wenn also jemand das auf noob-verständlich schreiben würde wäre das nett :) )

schon ma vielen dank
mfg a|mless


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Mo 05.05.2008 um 15:02
GericasS
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 540

Windows Vista Home Premium
D2010, VisualStudio2008
BeitragVerfasst: Mo 05.05.08 15:04 
Hey,

meiner Meinung nach sollte dies mit einer .ini Datei funktionieren.
Hatte ich heute morgen auch erst =)

www.delphi-forum.de/viewtopic.php?t=83107

_________________
Alexander N.
Neue Bewaffnung Amilo xi2428 T9300
passiv
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 270

WIN XP Professional
Delphi 7 Enterprise, Java (Eclipse), Python 2.5, Django 1.1
BeitragVerfasst: Mo 05.05.08 15:34 
seh ich das richtig, dass du das wie eine Tabelle speichern willst, damit das dann so ausschaut?
ausblenden Quelltext
1:
2:
3:
0200000002000002
0020000002000020
0200000020000020

dann müsstest du das auslesen in einer verschachtelten Schleife machen ->
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var  sl: TStringList;
begin
  sl:=TStringList.Create;
  try
    sl.LoadFromFile('Level.txt');
    for y:=0 to sl.Count do
      for x:=1 to length(sl[y]) do begin
        case inttostr(sl[y][x]) of
          0: ZeichneLuft(x-1,y);  //x-1 weil ein string bei 1, ein bild aber bei 0 startet
          2: ZeichneWand(x-1,y);
          end;
  finally sl.Free; end;
end;

und ein ZeichneLuft würde so aussehen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure ZeichneLuft(x, y: Integer);
begin
  SpielImage.Canvas.Brush.Color:=LuftFarbe;
  SpielImage.Canvas.Rectangle(x*10,y*10,x*10+10,y*10+10);
end;

und ein Image hat genauso ein Canvas wie die Paintbox ... oder versteh ich das einfach nicht?
user profile icona|mless hat folgendes geschrieben:
im spiel an sich haben wir jedoch keine paintbox, sondern ein image, da die paintbox von dem männchen ansonsten überschrieben würde.

was für ein männchen? und wie jetzt überschreiben? ich schätze mal, die Spielfigur, oder?

_________________
Die Probleme, die es in der Welt gibt, sind nicht mit der gleichen Denkweise zu lösen, die sie erzeugt hat.
Albert Einstein