![]() |
RPGEditor - Ladeprobleme
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
Ich habe einen Editor für mein Rollenspiel programmiert. Das Laden und speichern klappt eigentlich soweit - bei kleinen Maps. Wenn die Maps etwas größer sind werden die Maps nicht richtig geladen.. Abgespeichert werden sie glaube ich richtig... Neue Map:
Delphi-Quellcode:
Map laden:
procedure TEditWorld.New(Width:Integer; Height:Integer); //TEditWorld = class(TWorld)
var x,y,i : Integer; begin i:= 0; Textures.Clear; // TTextureList = class(TObjectlist) World.Engine.Engine.Clear; //Engine = TDXSpriteEngine World.LWidth := Width; World.LHeight:= Height; if FLevel <> nil then FLevel.Free; //FLevel = TBiginifile DeleteFile(ExtractFilePath(Application.Exename) + 'Default.rpm'); FLevel := TBigIniFile.Create(ExtractFilePath(Application.Exename) + 'Default.rpm'); FLevel.WriteInteger('Count','Count',Width*Height); //Anzahl der Tiles for y:= 0 to Height-1 do begin for x:= 0 to Width-1 do begin inc(i); FLevel.WriteString('Tex' + IntToStr(i),'Tex','Wasser'); //Textur FLevel.WriteInteger('Tex' + IntToStr(i),'x',x); //x- FLevel.WriteInteger('Tex' + IntToStr(i),'y',y); //y-Wert Schreiben end; end; FLevel.FlushFile; //Ini speichern LoadFromFile(ExtractFilePath(Application.Exename)+ 'Default.rpm'); //Level laden end;
Delphi-Quellcode:
Texturen "malen" :
procedure TWorld.LoadFromFile(Filename: String);
var i: Integer; Count: Integer; Tex: TTexture; xW,yW: Integer; //Breite und Länge der Welt begin xW:= 0; yW:= 0; Textures.Clear; Engine.Engine.Clear; FLevel := TBigIniFile.Create(Filename); Count := FLevel.ReadInteger('Count','Count',0); for i:= 1 to Count do begin Tex:= TTexture.Create(Engine.Engine,ImageList.Items.Find(FLevel.ReadString('Tex' + IntToStr(i),'Tex',''))); with Tex do begin x:= FLevel.ReadInteger('Tex' + IntToStr(i),'x',0) *32; // x, y Koordinaten auslesen y:= FLevel.ReadInteger('Tex' + IntToStr(i),'y',0) *32; xW:= (Round(x) div 32)+1; //Länge yW:= (Round(y) div 32)+1; // Breite end; Textures.Add(Tex); //Textur zur Texturliste adden end; LWidth:= xW; LHeight:= yW; end; end.
Delphi-Quellcode:
Speichern:
procedure TEditWorld.DXDrawClick(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); var Sprite: TImageSprite; x1,y1,i: Integer; Tex: TTexture; begin if ((x div 32) < World.LWidth) and ((y div 32) < World.LHeight) then begin // Wenn man nicht außerhalb klickt Sprite:= TImageSprite(World.Engine.Engine.GetSpriteAt(x,y)); i:= GetTexNum(Sprite); // Position in der Texturenliste Sprite.Free; x1:= x; y1:= y; Tex := TTexture.Create(World.Engine.Engine,World.ImageList.Items.Find(World.Texture)); with Tex do begin x:= (x1 div 32) * 32; y:= (y1 div 32) * 32; x1:= Round(x) div 32; y1:= Round(y) div 32; end; FLevel.WriteInteger('Tex' + IntToStr(i),'x',x1); FLevel.WriteInteger('Tex' + IntToStr(i),'y',y1); FLevel.WriteString('Tex' + IntToStr(i),'Tex',World.Texture); FLevel.FlushFile; //Änderungen in Ini schreiben end; end;
Delphi-Quellcode:
Laden:
procedure TForm1.Mapspeichern1Click(Sender: TObject);
var SL: TStringlist; begin if SaveDialog1.Execute then begin // dürfte sich alles von selbst erklären hier SL:= TStringList.Create; SL.LoadFromFile(ExtractFilePath(Application.Exename) + 'Default.rpm'); if pos('.rpm',SaveDialog1.Filename) > 0 then begin SL.SaveToFile(SaveDialog1.FileName); World.Filename:= SaveDialog1.FileName; end else begin SL.SaveToFile(SaveDialog1.FileName + '.rpm'); World.Filename:= SaveDialog1.FileName + '.rpm'; end; SL.Free; end; end;
Delphi-Quellcode:
Ok das war jetzt viel Code. Ich habe noch den Editor selber angehangen damit ihr den Fehler nachvollziehen könnt und nicht nur einen Haufen Quelltext habt :mrgreen:
procedure TForm1.Mapffnen1Click(Sender: TObject);
begin if Opendialog1.Execute then World.LoadFromFile(Opendialog1.Filename); end; Ach ja: Ich hoffe das hier ist die richtige Sparte.. Oder hätte das auch in Multimedia gehört ? |
Re: RPGEditor - Ladeprobleme
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
Also hab' gerade mal den Editor getestet und konnte deinen Fehler leider nicht nachvollziehen :roll: Mir ist aber ein anderer Bug aufgefallen: Wenn ich auf der linken Seite eine Textur auswähle und dann rechts irgendwo reinklicke um die Textur dann zu platzieren, tauchen manchmal nur schwarze Blöcke auf (siehe Attachment). Und warum wechselst du beim starten des Programms die Bildschirmauflösung? Ich dachte erst mein Rechner wäre abgeschmiert und jetzt käm ein Bluescreen :freak: Wäre schön, wenn du nur eine "normale" Windows Applikation schreiben würdest die wie jedes andere Fenster auch angepasst werden kann und nicht direkt den ganzen Bildschirm belegt. Schaut auch nebenbei schöner aus :) Auch schön wäre wenn die Buttons sich "reindrücken" lassen würde, damit ich nicht immer unten in die Statusleiste schauen muss, um zu wissen ob die Textur jetzt ausgewählt wurde. Ich hoffe ich konnte dir ein wenig helfen. |
Re: RPGEditor - Ladeprobleme
Den Bug den du beschrieben hast den kannte ich schon. Aber der war im Gegensatz zu dem Ladebug eher nachrangig.. Das mit dem reindrücken und mit der normalen Windows-Application werde ich noch einrichten ;)
Und du konntest wirklich auch größere Maps speichern und ohne probleme laden ?? |
Re: RPGEditor - Ladeprobleme
50x50 dauert bei mir etwa 3 Sekunden. Aber ich habe noch weitere Bugs gefunden:
Wenn man eine Karte erstellt, und dann nochmal eine neue erstellt, kriegt man ne AV. Und es wäre nützlich, wenn du es so machen würdest, das man mit einem Klick und dann über die Felder drüber ziehen die Texturen drauftuen könnte, und nicht für jedes Feld einzeln klicken muss. Auch Füllwerkzeuge wären sehr nützlich. |
Re: RPGEditor - Ladeprobleme
Zitat:
Ja das mit dem füllen und das man nicht jedes Feld einzeln anklicken muss kommt noch. Es geht mir ja nur um den einen Fehler beim Laden. Wenn ich insgesamt Verbesserungsvorschläge haben wollte hätte ich das in Freeware gestellt ;) |
Re: RPGEditor - Ladeprobleme
Wenn das so lange dauert beim Laden, welchen PC hast du? Einen Pentium 100?
|
Re: RPGEditor - Ladeprobleme
Ich ? Ich hab gar nicht gesagt das das bei mir lange dauert ?!
|
Re: RPGEditor - Ladeprobleme
Ahja, jetzt sehe ich es. Du sagtest, es geht nicht richtig.
Irgendwie treten bei jedem Fehler auf: Doch es sind nie die gleichen. Wie kann das denn gehen? |
Re: RPGEditor - Ladeprobleme
Also die Sache ist geklärt. Ich habs jetzt mit FileStreams gemacht :)
|
Re: RPGEditor - Ladeprobleme
Und wie hast dus davor gemacht? Mit assignfile und readln?
|
Re: RPGEditor - Ladeprobleme
Sag mal hast du dir eigentlich auch mal meinen Quellcode angeguckt ?? Das hier war kein Freeware-Bug-Bericht Thread -.- Das war ne Frage warum das Laden nicht funktioniert.. Und wie du meinem Quelltext entnehmen kannst hab ich (Big)IniFiles benutzt :roll:
|
Re: RPGEditor - Ladeprobleme
Nein, den habe ich wirklich nicht angesehen. Tut mir leid. Habe ich ganz übersehen. Aber BigInis sind ja auch furchtbar laaaangsam und nicht für solche Zwecke vorgesehen.
Und entschuldige wenn ich dir ein paar Bugs gemeldet habe, wenn sie dich nicht interessieren musst du es nur sagen. |
Re: RPGEditor - Ladeprobleme
Du musst dich nicht dafür entschuldigen aber danach war halt nicht gefragt ;)
|
Re: RPGEditor - Ladeprobleme
Zitat:
Poste mal eine neue Version damit wir nochmal ein Blick drauf werfen können :) |
Re: RPGEditor - Ladeprobleme
Liste der Anhänge anzeigen (Anzahl: 2)
Gut dann hänge ich hier mal die aktuelle Version an.
Achja: wenn das ein Moderator liest: verschiebt das doch bitte mal in Freeware ^^ Das ist jetzt offiziell mein Editor Thread :) Neue Features: :arrow: EditMode: Wie gehabt, es lassen sich Texturen malen. (Der komische bunte Button^^) :arrow: RotateMode: Texturen lassen sich drehen. (Der Button daneben - selbsterklärend) :arrow: Ausgewählte Textur wird eingedrückt :arrow: Übergangstexturen hinzugefügt :arrow: Rechtsklick auf Textur -> Eigenschaften: AlphaWert kann editiert werden. (Bei den bloßen Texturen noch weniger sinnvoll, das wird erst gut wenn es Objekte gibt) Bekannte Bugs: :arrow: Manchmal erscheinen schwarze Felder statt der Textur :arrow: Beim Laden werden manche Texturen nicht geladen -> schwarzes Feld :roll: Preview: :arrow: Scrollbalken, damit man bei größeren Levels auch alles sieht :mrgreen: (hab schon angefangen gibt aber noch Probs) :arrow: Vielleicht noch ein paar mehr Texturen, vielleicht erste Objekte wie Büsche oder Sonstiges.. :arrow: Entfernung der bekannten Bugs (Ich hasse es -.- Ich kann mir das mit den schwarzen Feldern nicht erklären -.-) :arrow: mal sehn... :wink: |
DP-Maintenance
Dieses Thema wurde von "Daniel" von "Sonstige Fragen zu Delphi" nach "Freeware" verschoben.
Auf Wunsch des Autors nach Freeware verschoben |
Re: RPGEditor - Ladeprobleme
Liste der Anhänge anzeigen (Anzahl: 1)
Okay, hab' die neue Version gerade mal angetestet.
Hier meine Verbesserungsvorschläge: - Kein Vollbild sondern ein Fenster (hatte ich ja bereits erwähnt) - Sobald man das Programm startet wird direkt ein neues Level mit einer Standardgröße erstellt, damit man nicht jedes mal auf den Neu-Button klicken muss (ich bin ein fauler Mensch :-D) - Die Combobox kannst du ja auch als DropDown-List machen, da man ja sowieso nichts eingeben kann - Tooltips für die Speedbuttons Kleinere Designmängel: - Die Icons auf den SpeedButtons sehen etwas merkwürdig aus und werden an manchen Stellen geclippt - Die Schriftart des Neu-Dialogs solltest du auf eine Standardschriftart stellen wie z.B. Arial, MS Sans Serif, Verdana, etc. - Ein Icon für die Echse wäre nicht schlecht Ein Bug den ich durch Zufall rausgefunden habe: Wenn man versucht den RPGEditor mit Parameter zu starten, zum Beispiel im Windows Explorer per Drag & Drop, wechselt auf einmal die Bildwiederholfrequenz und dann startet der RPGEditor mit eine Exception (siehe Attachment). |
Re: RPGEditor - Ladeprobleme
Liste der Anhänge anzeigen (Anzahl: 1)
Ok neue Version ist da.
Alle geforderten Veränderungen erfolgreich durchgeführt :) Dann gebt mir noch ein bisschen Zeit dann kommen Scrollbars, Objekte etc.. Also im Detail: :arrow: Tooltips bei Speedbuttons hinzugefügt :arrow: Icon vom Editiermodus geändert :arrow: Icon der Exe verändert :arrow: Schrift auf Standardschrift eingestellt :arrow: Kein Vollbild :arrow: "Bug" behoben. Das Programm kann nun mit Parametern geladen werden :arrow: Beim Programmstart gibts eine 10*10 große Erd Map |
Re: RPGEditor - Ladeprobleme
Liste der Anhänge anzeigen (Anzahl: 1)
Hab' gerade wieder die neueste Version getestet. Muss sagen wird immer besser :thumb:
Bugs: - Sobald ich das Popup per rechte Maustaste auf dem Spielfeld öffnen will, erscheint es an einer völlig anderen Stelle. (Liegt warscheinlich daran, dass du von Vollbild nun auf Fenster umgestellt hast) - Wenn ich den Editor nun mit Parameter starte (so wie im letzten Post beschrieben), startet das Programm, friet aber augenblicklich ein und die CPU-Auslastung steigt auf 99% Kleinere Designmängel: - Der Fenstertitel in der Windows Startleiste ist "RPG-Editor" aber im Fenster "Karten-Editor" - Eigener Ordner für die Texturen - Mehrere Instanzen verhindern - Die Texturen-Übergange erzeugen noch nicht einen sauberen Übergang - Speichern-Abfrage vor dem Beenden - Splash-Screen Persönliche Wünsche :) - Rückgängig-Funktion - Shortcuts für den Rotate- und Editiermodus - Wäre gut wenn man nicht immer jeden einzelnen Block anklicken muss um eine Textur zuzuweisen, sondern einfach die Maustaste gedrückt halten könnte - Ich würde den Datei -> Neu Dialog anders gestalten (siehe Attachment). Halte mich normalerweise an die Standards. Ist nicht nur einfacher, sieht obendrein auch noch professionell aus ;) Hoffe das ist nicht zu viel :D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:48 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