Autor Beitrag
Hugo343
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 114
Erhaltene Danke: 2

Windows 7
Turbo Delphi, Dev C++
BeitragVerfasst: Do 30.04.09 17:33 
Hier will ich mein neues Spiel "Labyrinth" vorstellen, bei dem ich einiges über Rotation und Datei-Auslesen gelernt habe! Ich habe die "bitmap_handling.pas"-Unit genommen (vielen Dank an den Macher). Der Sinn des Spiels ist es, innerhalb der Zeitbegrenzung durch ein Labyrinth zu kommen, das man nur durch einen mit der Maus rotierbaren Lichtkegel sehen kann. Natürlich ist das alles noch nicht ganz ausgereift und deswegen hoffe ich, das wenn ihr einen Fehler findet, ihn hier reinschreibt, damit ich ihn versuchen kann zu verbessern! Auch wenn ihr Probleme mit der Schnelligkeit oder der allgemeinen Benutzerfreundlichkeit habt, schreibt es mir bitte umgehend!

Vielen Dank schonmal für jeden Post, der mir hilft mein Programm zu verbessern!

(Ich habe die Einzel-Version rausgenommen, das vollständige Spiel plus Editor ist ja in der Labyrinth_Game_Full.zip enthalten.)
Einloggen, um Attachments anzusehen!


Zuletzt bearbeitet von Hugo343 am Mi 06.05.09 16:43, insgesamt 7-mal bearbeitet
Mitmischer 1703
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Do 30.04.09 17:52 
Es ist natürlich logisch, dass, wenn ich nur die Zip entpacke, nichts klappen kann. Trotzdem solltest du das abfangen! Ansonsten ganz schön, aber ich brauche sehr viel mehr Zeit

_________________
Die Lösung ist nicht siebzehn.
Hugo343 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 114
Erhaltene Danke: 2

Windows 7
Turbo Delphi, Dev C++
BeitragVerfasst: Do 30.04.09 17:56 
What do you mean? Bei dem Download steht doch auch "+ notwendige Ressourcen". Oder hat das jetzt eher mit dem Programm zu tun. Und wie soll ich das denn bitte abfangen. Bei Windows kann ich da ja schlecht mitmischen...
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: Do 30.04.09 18:01 
Mitmischer, deine Kommentare sind eigenartig :roll:

Zum System: Warum muss ein Labyrinth denn auch in der .txt drinstehen? Wäre auch möglich, das Verzeichnis mit FindFirst und FindNext selbst zu durchsuchen.
Zum Spiel selbst: Es ist höchst verwirrend, dass man ein Labyrinth doppelt auswählen muss. Also, zuerst Listeneintrag, dann denkt man, "Jupiduu, geht los!" und dann rührt sich nichts. Und bis man den Knopf da unten findet ... ist unnötig.
Das klassische: Über Farbgestaltung lässt sich streiten, ist nicht mein Geschmack.
Das Steuerungs-Menü ist als Popup in einem komplett anderem Stil gehalten und passt einfach nicht dazu. Außerdem wäre vielleicht ein Vollbildmodus noch ganz nett.

Aber sonst :zustimm: für ein Anfänger-Projekt schon ganz schön ausgereift.

Bis dann

_________________
Die Probleme, die es in der Welt gibt, sind nicht mit der gleichen Denkweise zu lösen, die sie erzeugt hat.
Albert Einstein
Hugo343 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 114
Erhaltene Danke: 2

Windows 7
Turbo Delphi, Dev C++
BeitragVerfasst: Do 30.04.09 18:13 
Das mit FindFirst/FindNext hab ich noch nicht gewusst, danke :idea: ! Ich werd mich mal darüber informieren. Das hab ich mir auch schon gedacht, müsste eigentlich nur die beiden Sachen irgendwie vereinen (Mach ich gleich). Das mit der Farbe hab ich mir mal bei einem anderen Spiel ausgedacht und einfach nur dunkler gemacht um einen "Nachteffekt" zu kriegen. Falls sie dir nicht gefallen kannst du sie ja auch verändern, die sind ja nicht mit ins Programm eingebunden.
Ich versteh aber leider nicht was du mit Popupmenu-Stil meinst. Das sind alles labels. Vor einem Vollbildmodus hab ich immernoch Bammel, weil die Programme von meinem Kumpel alle Vollbild sind und das ganze bei mir dann etwas verzerrt ist (Er(alter PC): 1024*768 ; Ich: 1280*800). :?

PS: Weiß jemand eine Function um eine Datei zu ver- und entschlüsseln? Ich will die Maps ja nicht unbedingt so freistellen, sonst könnte man ja schummeln. :evil:
Mitmischer 1703
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Fr 01.05.09 11:03 
user profile iconHugo343 hat folgendes geschrieben Zum zitierten Posting springen:
What do you mean? Bei dem Download steht doch auch "+ notwendige Ressourcen". Oder hat das jetzt eher mit dem Programm zu tun. Und wie soll ich das denn bitte abfangen. Bei Windows kann ich da ja schlecht mitmischen...


Du solltest überprüfen, ob die Ressourcen da sind - und das Programm dann terminaten, falls nicht. Ansonsten startet es sich, ist aber nicht lauffähig! Und: Wieso sind meine Kommentare eigenartig? :? :think:

Edit: Fehler in Laby 3, ganz links in der Ecke!
Einloggen, um Attachments anzusehen!
_________________
Die Lösung ist nicht siebzehn.
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Fr 01.05.09 11:32 
user profile iconHugo343 hat folgendes geschrieben Zum zitierten Posting springen:
PS: Weiß jemand eine Function um eine Datei zu ver- und entschlüsseln? Ich will die Maps ja nicht unbedingt so freistellen, sonst könnte man ja schummeln. :evil:


Nimm doch einfach bekannte Algorithmen, z. B. Vigenere oder XOR.
Hugo343 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 114
Erhaltene Danke: 2

Windows 7
Turbo Delphi, Dev C++
BeitragVerfasst: Fr 01.05.09 15:50 
An Mitmischer: Ahh so meinst du das :roll: . Das ich machen. 2. Den Fehler hab ich auch bemerkt, bin aber noch nicht dazu gekommen ihn zu entfernen. An Jakob_Ullmann: Was ist Vingere oder XOR? EDIT: MITMISCHER DEINE KOMMENTARE SIND MYSTERIÖS, WEIL DU NICHT SAGST WORUM ES GEHT!!!
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Fr 01.05.09 16:37 
user profile iconMitmischer 1703 hat folgendes geschrieben Zum zitierten Posting springen:
Es ist natürlich logisch, dass, wenn ich nur die Zip entpacke, nichts klappen kann. Trotzdem solltest du das abfangen!
Was ist daran schwer zu verstehen :nixweiss: Er meint, du solltest Fehler verweigern, in dem du das Programm sagen lässt "Hey, meine Resourcen sind nicht da! Neuinstallation würde das Problem beheben." woraufhin es sich beendet, an statt normal zu starten und nicht zu funktionieren. Hat man kein Labyrinth ausgewählt, verliert man sofort :lol: Solche Kleinigkeiten mit sinnvollen Fehlermeldungen abfangen wäre der nächste Schritt.
An sonsten, ziemlich lustiges Spiel :zustimm: Wie wär's mit einem Leveleditor (Dann kommst du nicht drum rum, die Maplist.txt zu kicken. )?
Ich fände es besser, wenn man sich etwas schneller bewegen würde, das würde ein bisschen mehr Action reinbringen :)
Wie wär's, wenn das "Licht" erst nach einer halben Sekunde oder so ausgeht, so dass man einen Augenblick hat, um sich die Karte einzuprägen? Das würde dann beim Spielen das Gehirn ein bisschen fordern :zustimm: Man könnte in die Mapdatei schreiben, wie lange das Licht an sein darf.
Was das Verschlüsseln betrifft: ein ganz simpler kleiner Algorithmus würde wahrscheinlich reichen. Jeden, der wirklich an den Inhalt der Mapdatei will, wird sowieso auch kein komplizierterer aufhalten. Eine kleine xor-Verschlüsselung reicht da schon, etwa so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
function crypt(Klartext, Schluessel: Char): Char;
begin
  Result := Char(Ord(Klartext) xor Ord(Schluessel));
end;

var
  Mapdatei: String;
  i : Integer;
begin
  for i := 1 to Length(Mapdatei) do
    Mapdatei[i] := crypt(Mapdatei[i], 'y');  //Ent- und Verschlüsseln geht auf die gleiche Art

In der Variable Mapdatei muss natürlich die Datei stehen. Probier mal damit rum, denk dran, dass Neue-Zeile-Zeichen auch verschlüsselt werden.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Fr 01.05.09 18:47 
user profile iconHugo343 hat folgendes geschrieben Zum zitierten Posting springen:
An Jakob_Ullmann: Was ist Vingere oder XOR?


Das, was JayEff gepostet hat. Es wird also jedes Zeichen bitweise mit dem Schlüsselzeichen geXORt (keine Ahnung, wie man das nennen soll). Also erst in eine Zahl umgewandelt, dasselbe mit dem Schlüssel, beides XOR, und dann das Ergebnis in ein Zeichen umwandeln. So bekommst du also nur das richtige Ergebnis zurück, wenn du den Schlüssel kennst (und da XOR sich ja auch prima umkehren lässt, ist das natürlich ideal).

Das Entschlüssel geht dann genauso, also verschlüsseltes_zeichen XOR schlüssel -> original_zeichen.

XOR-Wertetabelle:
ausblenden Quelltext
1:
2:
3:
4:
5:
original     schlüssel      xor
    1            0           1
    1            1           0
    0            1           1
    0            0           0

Da lässt sich auch leicht erkennen, dass das Entschlüsseln genauso geht. Bei anderen Logik-Operanden hat man das nicht...

EDIT: Also mit Umwandeln ist natürlich Chr() und Ord() gemeint, nicht IntToStr() und StrToInt()
Hugo343 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 114
Erhaltene Danke: 2

Windows 7
Turbo Delphi, Dev C++
BeitragVerfasst: Fr 01.05.09 18:48 
Die Sache mit den fehlenden Ressourcen hab ich so halbwegs, muss noch ein paar Feinheiten machen. Die Maplist.txt konnte ich jetzt rauswerfen :zwinker: , ich hab in der Borland-Hilfe nach den Stichwörtern FindFirst/FindNext gesucht :les: und jetzt sucht er den Maps-Ordner solange ab bis er nichts mehr findet. Jede gefundene Datei wird in die Listbox eingetragen.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
FindFirst(extractfilepath(paramstr(0))+'\bin\maps\*.lab',0,F);
listbox1.Items.Add(F.Name);

repeat
FindNext(F);
listbox1.Items.Add(F.Name);                                            
until FindNext(F)<>0;

Damit ist das hoffentlich gut gelöst. Das mit dem schneller bewegen hat auch schon mein Klassenkamerad gebracht, aber ich bin mir dann nicht mehr sicher wie ich dann den Zeitzähler anpasse. Außerdem wäre er dann in 4 Schritten ein Feld weiter! Ich bin mir nicht sicher ob das noch nach einer flüssigen Bewegung aussieht. Am Anfang dem Spieler was zu zeigen ist mir noch nicht eingefallen, und wird vielleicht auch nicht mehr drin sein, weil ich ja zum ersten Mal mit (einer auch noch mir unbekannten) Bitmap-Rotations-Unit gearbeitet habe und ich mir nicht sicher bin ob ich da nicht am Anfang schon zuviel verwurstelt hab :oops: . Und die Sache mit dem Editor lass ich erstmal bis ich mir sicher bin das das mit dem Programm und der Verschlüsselung hinhaut (wird aber kommen, versprochen ^^).

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Ok ich versuch das mal ^^.

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Die Verschlüsselungsmethode ist ja nicht schlecht, aber leider wird es für den Nutzer trotzdem erkennbar sein wo was liegen könnte da es ja jedes Zeichen einheitlich umwandelt. Bei dem Schlüssel "y" würde jedes "a" zu einem "". Ich habe versucht das sich der Schlüssel sich verändert, natürlich systematisch und wieder umkehrbar, sodass jedes Zeichen anders wird. Leider klappt das bis jetzt noch nicht so ganz weil er bei meinen Eingriffen in die for-Schleife mir seinen Dienst verweigert. Ich versuch das ma weiter ^^.

EDIT: Ok, wird doch etwas anders. :oops: :oops: :oops: Ich nehm das lieber so.^^
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Fr 01.05.09 19:53 
Nun wenn du eine polyalphabetische Verschlüsselung machen willst, wird das ganze auch nur minimal sicherer, aber es ist ein Anfang. Am besten nimmst du ein Wort als Schlüssel. Ich zeig dir mal, wie man meinen Code anpassen würde:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
function crypt(Klartext, Schluessel: Char): Char;
begin
  Result := Char(Ord(Klartext) xor Ord(Schluessel));
end;

var
  Mapdatei: String;
  Key: String;
  i, KeyLength : Integer;
begin
  Key := 'MeinGeheimerSchlüssel';
  KeyLength := Length(Key);
  for i := 1 to Length(Mapdatei) do
    Mapdatei[i] := crypt(Mapdatei[i], Key[(i mod Keylength) + 1]);  //Ent- und Verschlüsseln geht auf die gleiche Art

Zur Erklärung: der Modulo Operator teilt durch KeyLength und gibt den Rest der Teilung zurück, wenn dieser kleiner ist als Keylength. An sonsten teilt er nochmal. Aus 5 mod 3 wird also 2, 100 mod 20 = 0, etc. In unserem Fall nutze ich mod um dafür zu sorgen, dass er nicht versucht, über den rechten oder linken Rand von Key hinaus zugehen. i mod KeyLength sollte Werte zwischen 0 und KeyLength - 1 ausgeben. Darum addiere ich noch eine 1 drauf. Nun verschlüsselt der Algorithmus ganz nach dem Vigenère Schema:
ausblenden Quelltext
1:
2:
3:
Schlüssel: blablablabl
Klartext : huhu *freu*
Code     : wasauchimme

(Nein, unter Code steht NICHTS was ich ernsthaft verschlüsselt hab :mrgreen: Da war ich zu faul.)
Denk aber daran, dass jeder noch so anfängerhafte Hacker deine Verschlüsselung recht einfach knacken kann, da dein Passwort im Code drin steht. Wähl vielleicht ein Passwort wie "Spiel Starten", da kommt niemand drauf, dass das auch das PW zur Verschlüsselung ist :rofl:

Edit: Was die Bewegung betrifft:
Eine nette kleine Herrausforderung wäre es, dein Spiel in OpenGL umzuschreiben! Ich hab auch mal ein kleines Spiel geschrieben das zunächst mit Images gearbeitet hat ( www.delphi-forum.de/viewtopic.php?t=62192 ), und dann hab ich es mit Hilfe von Suche in: Delphi-Forum, Delphi-Library FEAR2D in OpenGL umgeschrieben, das ging ganz einfach! Da hast du dann eine größere Auflösung als nur Pixel für Pixel. Interessant wäre auch eine Art "Rutschen" der Spielfigur, also ein weicheres Beschleunigen und Abbremsen - aber das ist nicht so wichtig ;)

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Hugo343 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 114
Erhaltene Danke: 2

Windows 7
Turbo Delphi, Dev C++
BeitragVerfasst: Sa 02.05.09 16:37 
Auch das Problem hat sich gelöst. Er läuft jetzt schneller, dafür wird aber auch die Zeit verkürzt. Und ich hab ein Icon gemacht :wink: . Leider ist ein neues Problem aufgetaucht. Bei mehr als drei Maps werden manche nicht in der Liste angezeigt..? Kann vielleicht nochmal einer den Quelltext den ich dafür geschrieben hab durchgucken(weiter oben.)? Ich hab die neue Version jetzt mal hochgeladen. ^^
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Sa 02.05.09 17:19 
Hi :)

Wenn ich das jetzt richtig verstanden habe, solltest du dir vielleicht einmal die Komponente "TTimer" ansehen. Die würde gewährleisten, dass das Spiel auf jedem Rechner gleich schnell läuft.

mfG,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
Hugo343 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 114
Erhaltene Danke: 2

Windows 7
Turbo Delphi, Dev C++
BeitragVerfasst: Sa 02.05.09 17:40 
Ganz richtig nicht. TTimer verwende ich schon, ich wüsste auch nicht wie ich das anders machen soll. Mein einziges Problem ist jetzt nur noch das mit dem laden... :( Ich hoffe das mir da jemand weiterhelfen kann, danach können dann so sachen wie Editor usw. kommen. :mrgreen:

EDIT: Wer fände www.youtube.com/watch?v=WSgALh4SRRc gut als Hintergrundmusik? ^^

EDIT2: Ich hab den FindFirst/FindNext-Teil mal etwas aufgepeppt, jetzt trägt er bei einer gerdaden Anzahl von Dateien eine weniger, bei einer ungeraden Zahl die letzte zweimal ein.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
FindFirst(extractfilepath(paramstr(0))+'\bin\maps\*.lab',0,F);

repeat
listbox1.Items.Add(F.Name);
FindNext(F);
listbox1.Items.Add(F.Name);
until FindNext(F)<>0;

if (listbox1.Count mod 2 = 0then begin
listbox1.Items.Delete(listbox1.Count-1);
end;


Mit der If-Abfrage wollte ich eigentlich das abfangen, ist das so richtig?
Hugo343 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 114
Erhaltene Danke: 2

Windows 7
Turbo Delphi, Dev C++
BeitragVerfasst: So 03.05.09 18:52 
Ich habe jetzt mal die letzte Version meines Spiels hochgeladen und wage mich dann mal an den Editor :wink: . Falls noch irgendwie Interesse besteht etwas hinzuzufügen werde ich mal sehen ob sich das bewerkstelligen lässt ^^ . Vielen Dank für die vielen hilfreichen Tipps!

PS: Den Editor werde ich dann unter das Spiel stellen.
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: So 03.05.09 19:59 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
FindFirst(extractfilepath(paramstr(0))+'\bin\maps\*.lab',0,F);

repeat
  listbox1.Items.Add(F.Name);
until FindNext(F)<>0;
So.
user profile iconHugo343 hat folgendes geschrieben Zum zitierten Posting springen:
Mit der If-Abfrage wollte ich eigentlich das abfangen, ist das so richtig?
Natürlich nicht, du sollst ja den Fehler und nicht das Symptom bekämpfen ;)

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Hugo343 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 114
Erhaltene Danke: 2

Windows 7
Turbo Delphi, Dev C++
BeitragVerfasst: Mo 04.05.09 18:54 
Aber wo führt der denn da Findnext aus? Außerdem, ich hab jetzt ein ganz neues Problem... Und zwar mit dem Editor dazu. Ich versuche nähmlich, dass man eine Minimap bemalen kann und er jedes Feld(String-Array) mit einem Buchstaben füllt, das dann am Ende in ein Memo eingetragen wird, verschlüsselt und dann abgespeichert wird. Leider klappt das mit der Übertragung vom Array ins Memo nich so ganz. Am besten ich erläuter das nochmal: Jedes Feld im Array wird am Anfang mit dem String '0'(0 heißt nichts und ist auch für die Labyrinth.exe "verträglich"). Wenn man dann auf ein entsprechendes Feld klickt, wird der entsprechende Buchstabe in das Array eingetragen. Wenn der Menubutton "Labyrinth abspeichern" gedrückt wird sollte!!! er eigentlich ganz einfach mit zwei For-Schleifen (eine für Y, die andere für X) das Array aussuchen in in das Memo eintragen. Eigentlich ganz einfach, aber es haut nicht hin. Hat jemand ein besseres Beispiel für eine Übertragung von Array zu Memo?
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Di 05.05.09 13:27 
user profile iconHugo343 hat folgendes geschrieben Zum zitierten Posting springen:
Aber wo führt der denn da Findnext aus?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
FindFirst(extractfilepath(paramstr(0))+'\bin\maps\*.lab',0,F);

repeat
  listbox1.Items.Add(F.Name);
until FindNext(F)<>0;
;)
Darum klappte auch deine Version nicht :mrgreen:


user profile iconHugo343 hat folgendes geschrieben Zum zitierten Posting springen:
Außerdem, ich hab jetzt ein ganz neues Problem... Und zwar mit dem Editor dazu. Ich versuche nähmlich, dass man eine Minimap bemalen kann und er jedes Feld(String-Array) mit einem Buchstaben füllt, das dann am Ende in ein Memo eingetragen wird, verschlüsselt und dann abgespeichert wird. Leider klappt das mit der Übertragung vom Array ins Memo nich so ganz. Am besten ich erläuter das nochmal: Jedes Feld im Array wird am Anfang mit dem String '0'(0 heißt nichts und ist auch für die Labyrinth.exe "verträglich"). Wenn man dann auf ein entsprechendes Feld klickt, wird der entsprechende Buchstabe in das Array eingetragen. Wenn der Menubutton "Labyrinth abspeichern" gedrückt wird sollte!!! er eigentlich ganz einfach mit zwei For-Schleifen (eine für Y, die andere für X) das Array aussuchen in in das Memo eintragen. Eigentlich ganz einfach, aber es haut nicht hin. Hat jemand ein besseres Beispiel für eine Übertragung von Array zu Memo?
Ja, fasse das Memo einfach direkt als array auf: Memo1.Lines[Zeile][Spalte] Aber wenn's nur um's Abspeichern geht, nimm statt einem Memo eine TStringList:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
var 
  sl : TStringList;
  i : Integer;
begin
  sl := TStringList.Create;
  for i := 0 to AnzahlZeilen-1 do
    sl.Add('0000000000000000000[...]0'); //soviele 0en wie du Spalten hast

  //Zum Ändern eines Feldes
  sl[zeile][spalte] := 'a';

  //Dann halt Verschlüsseln und
  sl.SaveToFile(Dateiname);
  sl.Free;
end;


Edit: Mein Kumpel sagt grade...:
Was bringt eine Verschlüsselung, wenn du sowieso einen Editor für die Dateien mitlieferst ;)
Ich würd das einfach so lassen, weil, wenn jemand sich die Maps im Vorraus anguckt betrügt er sich ja bloß selbst um seinen Spielspaß ;)

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Hugo343 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 114
Erhaltene Danke: 2

Windows 7
Turbo Delphi, Dev C++
BeitragVerfasst: Di 05.05.09 15:32 
Danke für den Tipp^^! Aber so dumm bin ich nicht^^. Der Editor kann die *.lab-Maps nicht laden. Es werden zwei Arten von Maps abgespeichert, einmal die *.lab und dann noch *.lab.usr(usr steht für USER), die sich mit dem editor öffnen lässt. So kann der Nutzer nur seine eigenen Maps öffnen und bearbeiten :D . So, es wird Zeit dann mal alles zu einem Ende zu bringen. Ich stell jetzt das ganze packet mit spiel und editor hier rauf und spätestens am wochenende lad ich auch noch mal ein maps-pack hoch (drei maps sind ja ein bisschen zu wenig :wink: ).