AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte [Editor] DrawBall - Editor
Thema durchsuchen
Ansicht
Themen-Optionen

[Editor] DrawBall - Editor

Ein Thema von xZise · begonnen am 29. Nov 2006 · letzter Beitrag vom 25. Nov 2011
Antwort Antwort
Seite 2 von 6     12 34     Letzte »    
Benutzerbild von xZise
xZise
Registriert seit: 3. Mär 2006
Ich habe einen Editor für DrawBall geschrieben.
Zwar gibt es einen vom Autor des Programms, aber der ist noch nicht so weit. Zusätzlich sollte er lieber DrawBall an sich verbessern
Editor


Dieser Editor kann bisher alle verfügbaren Objekte von DrawBall.
Zusätzlich kann man leicht erkennen, auf welchen Feld man sich befindet.

Nun seid ihr an der Reihe! Gibt Verbesserungen und Vorschläge an!

Dieser Editor ist unter der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported Lizenz veröffentlicht und in Delphi 2009 geschrieben.

Changelog
  • Version 0.9 b2
    • Karte installieren - Es ist möglich eine Karte gleich bei der DrawBall.exe zu speichern (Bisher noch sehr unpraktisch
    • Speicherbug - Es fehlte bei den Koordinaten das letzte "|". Jetzt wird es angefügt
    • Verknüpfbarkeit - Man kann jetzt den Pfad in einem Parameter übergeben
    • Neues Layout - Es regiert jetzt ein Menü oben statt die drei Buttons unten
    Version 0.9 b3
    • Weiße Karte - Problem mit weißer Karte behoben
    Version 0.10 Beta 1
    • Performance - Die Lösung des Problems mit der weißen Karte wurde verbessert (= alte Performance)
    Version 1.0
    • Abwärtskompatibilität - ist standardmäßig gegeben, nicht nur in diesem Editor
    • Neue Objekte - die Türen und dessen Schalter
    • Größeres Feld - Ein Feld ist um 8 Px breiter geworden ... Aber das zeigt ganz schön viel
    • Sprachunterstützung - Ich habe mal getestet, wie man die Sprache unterstützen könnte... Und nun sieht man was passiert ist (Ich muss übergeschnappt gewesen sein, auch eine Lateinversion anzulegen... Vielleicht liegts auch an Wikipedia?)
    • Möglichkeit zum Upgraden der Karte - Auch wenn eine Abwärtskompatibilität gegeben ist.
    • Standardmäßig wird eine neu Karte geladen - Das alte war zu umständlich und unsinnig
    Version 1.1
    • Direkter Screenshot - Es gibt die Möglichkeit über das Menü einen Screenshot zu erstellen (bmp und jpg)
    • [Bugfix] - Neue Maps können geladen werden.
    • Ladevorgang - Beide Maptypen können geladen werden.
    Version 1.2
    • Pipette - Mit der mittleren Maustaste, kann man das aktuelle Item aufnehmen
    • Speichern? - Falls man nicht gespeicher hat, fragt er vorher nach (spachtechnisch eingebaut)
    • Speichern (unter) -
      1. Differenzierung - Direktes Speichern/Erst Nachfrage
      2. Einfachere Navigation - Merkt er sich den alten Pfad, und er geht automatisch in den passenden Ordner (außer bei neuen Maps)
    • Neu/Geändert - Anzeige in dem Titel des Fensters, welche Datei geladen ist, und ob sie geändert wurde (Änderungen zu Ursprungszustand werden noch nicht überprüft, wird aber kommen)
    • [Bugfix] Laden der alten Maps - Die alten Maps können jetzt wirklich geladen werden
    • Sprachautor - Damit der fleißige Lateiner (eigentlich Römer xP) auch "belohnt" wird
    • Neue Itemwahl - Absofort kann man aus einem Treeview sein Item wählen (Ich bin der Meinung, dass die Karte nicht kleiner werden sollte, als die Bedienung des Editors!)
    • Verbessertes Latein - Von TonyR gibts jetzt eine neue Version (noch nicht ganz kompatibel Aber ich hoffe er holt es nach)
    Version 1.3
    • Objektauswahl - Neue Auswahl für das aktuelle Objekt
    • Hackmap - Siehe unten
    • Neue Objekte - Kissen, Bumper, Beamfelder
    • Neuer Hint - Statt des normalen Hints wird jetzt die TInfoBox von 3_of_8 eingesetzt
    • Grafische Verbesserung - Wände bekommen "dünnere" Ränder, wenn zwei Wände nebeneinander liegen
    Version 1.4
    • [Fix]Farbtankgrafiken - Statt den Farbtankgrafiken werden nun die Schaltergrafiken angezeigt!
    • [Fix]Kissen/Bumper - Die Grafiken wurden getauscht!
    • [Fix]Lila Punkte eleminiert - Die lilanen Ecken wurden jetzt elemeniert!
    • [Fix]Wände bekommen neue Ränder - Die benachbarten Wände bekommen wieder normale Ränder, wenn die Wand entfernt wurde
    • [Fix]Farbtanks sind Schalter - Die Objekte die als Farbtanks gesetzt wurden, wurden als Schalter behandelt
    • Nachfrage bei fehlenden Objekten - Der Editor fragt nach, ob man die Karte speichern will, wenn entweder keine Kugel oder kein Ziel oder keins von beiden plaziert wurde. Speichern ist dennoch möglich
    Version 2.0
    • Umstellung auf Andorra2D
    • Objekte Blocker und Text hinzugefügt
    • Lädt und Speichert das zukünftige (das entsprechende DrawBall ist noch nicht veröffentlicht) sowie das aktuelle Levelformat
    • Unterstützt die "Neuheiten" des neuen Levelformates (Kommentar und die Möglichkeit Feldern Texte zuzuweisen).
    • Das ziehen von Rahmen (Strgtaste gedrückt halten)/Flächen (Shifttaste gedrückt halten)
    • Neues Objektemanagement: Statt ein Objektraster gibt es eine Objektliste, und somit ist es möglich bis zu 4 Sachen auf einen Feld zu platzieren. Die aktuelle verfügbare Version unterstützt dies aber nicht umbedingt. Zudem ist es auch möglich einfach weitere Objekte zu ergänzen sowie "besondere" Objekte einfach zu erstellen.
    Version 2.0.1.0
    • Korrektes Anzeigen der Wändergrafiken (je nachdem was um sie herum ist)
    • Das Ziehen von Flächen geschieht nur noch durch ziehen
    • Beim Ziehen von Flächen/Rahmen können von jedem Typ nur ein Objekt platziert werden
    • Unterstützt das aktuellste Levelformat sowie das wahrscheinlich nächste Levelformat
    • Theoretisch sind die verschiedenen Brushgrößen implementiert
    • Probleme beim "Speichern", wenn bereits gespeichert ist, behoben, dass er "Speichern unter" ausgeführt hat

Links
Hackmap
Da Florian die Karten mit Hilfe der TStringList.LoadFromFile lädt gibt das mir die Möglichkeit, erweiterte Informationen hinter ein #0 zu verstecken. Dazu gibt es die Option "Hackmap" unter Extras. Man kann dort den Autor und eine kleine Beschreibung niederschreiben, welche dann andere User lesen können (geht bisher nur mit diesen Editor ). Alternativ kann man die Datei auch mit dem Notepad/Windows Editor angucken (Hinweis: Ich würde es nicht speichern, um Fehler zu umgehen).
Da diese Funktion aber nicht eigentlich dafür gedacht ist kann ich keine Garantie auf Funktionsfähigkeit geben.
Die Hackmap-Levels können wie ganz normale Levels gespielt werden.
Ihr Format ist folgendermaßen:
Code:
Normales Level
#0
Autor
Beschreibung
Im Notepad/Windows Editor wird das #0 nicht geschrieben (wie denn auch ). Deshalb nicht wundern
Die Funktionalität ist noch nicht unter der Version > 2.0 vorhanden. Stattdessen sollte erstmal das Kommentarfeld reichen.
Miniaturansicht angehängter Grafiken
dbe_145.png  
Angehängte Dateien
Dateityp: zip drawball_editor_203.zip (823,9 KB, 58x aufgerufen)
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
 
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#11
  Alt 2. Dez 2006, 20:01
Also ich kann den Fehler nicht bestätigen (siehe Anhang)!
Fabian
  Mit Zitat antworten Zitat
Dax
 
#12
  Alt 2. Dez 2006, 20:12
Zitat von xZise:
Könnt ihr mir mal die Vorgehensweise schicken?
-Neue Map
-Maus über die Map
->alles weiß
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#13
  Alt 2. Dez 2006, 20:21
Seltsam ? Habt ihr kein Windows XP?
Fabian
  Mit Zitat antworten Zitat
C.Schoch

 
Turbo Delphi für Win32
 
#14
  Alt 2. Dez 2006, 20:36
Doch! WinXP SP1
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#15
  Alt 2. Dez 2006, 20:52
Wäre es möglich es einfach einmal selber zu kompilieren?

PS: Ich werde es gleich mal auf einen anderen PC versuchen...

[edit]
Könntet ihr mal den Kontrast runterstellen? (Auch gerne auf 0 )
Vielleicht liegt es daran!
[/edit]
Fabian
  Mit Zitat antworten Zitat
dino

 
Delphi 5 Professional
 
#16
  Alt 2. Dez 2006, 21:44
na bei mir klappts wunderbar.

übrigens: wie kriege ich ein erstelltes level wieder weg?

ich habs gespeichert installiert ausprobiert und nicht geschafft

habs daher gelöscht, aber es kommt immernoch
  Mit Zitat antworten Zitat
C.Schoch

 
Turbo Delphi für Win32
 
#17
  Alt 2. Dez 2006, 21:54
Ich hab da mal einen Trick beim Zeichnen des Positionsrechtecks eingebaut, dann klappts auch bei mir.
Kompilieren geht nicht wirklich gut Da Ich nur Delphi 2005 hab.
Delphi-Quellcode:
procedure TForm1.iFocusMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  raster : RPoint;
begin
  raster := RPoint(Point(X div 20, Y div 20));
  if (raster.x <> oldPos.x) or (raster.y <> oldPos.y) then begin
    oldPos := raster;
    iFocus.Picture.Assign(iMap.Picture); // <-- Hier zeichne ich einfach die Map in die Auswahlgrafik da scheinbar die Map von der Auswahlgrafik überschrieben wird

    iFocus.Canvas.MoveTo((raster.x) * 20 + 1, (raster.y) * 20);
    iFocus.Canvas.LineTo((raster.x + 1) * 20 - 1, (raster.y) * 20);

    iFocus.Canvas.MoveTo((raster.x) * 20 + 1, (raster.y + 1) * 20 - 1);
    iFocus.Canvas.LineTo((raster.x + 1) * 20 - 1, (raster.y + 1) * 20 - 1);

    iFocus.Canvas.MoveTo((raster.x) * 20, (raster.y) * 20 + 1);
    iFocus.Canvas.LineTo((raster.x) * 20, (raster.y + 1) * 20 - 1);

    iFocus.Canvas.MoveTo((raster.x + 1) * 20 - 1, (raster.y) * 20 + 1);
    iFocus.Canvas.LineTo((raster.x + 1) * 20 - 1, (raster.y + 1) * 20 - 1);
  end;
end;

procedure TForm1.iFocusMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  var
  raster : RPoint;
begin
  if (selected <= 7) and (selected >= 2) then
    iMap.Canvas.Draw((x div 20) * 20, (y div 20) * 20, preBitMaps[0]);

  iMap.Canvas.Draw((x div 20) * 20, (y div 20) * 20, preBitMaps[selected]);

  Map[x div 20][y div 20] := selected;

  raster := RPoint(Point(X div 20, Y div 20)); //<-- Nach dem Zeichnen auf die Grafik muss natürlich die AuswahlGrafik neu gezeichnet werden
  iFocus.Picture.Assign(iMap.Picture);
    iFocus.Canvas.MoveTo((raster.x) * 20 + 1, (raster.y) * 20);
    iFocus.Canvas.LineTo((raster.x + 1) * 20 - 1, (raster.y) * 20);

    iFocus.Canvas.MoveTo((raster.x) * 20 + 1, (raster.y + 1) * 20 - 1);
    iFocus.Canvas.LineTo((raster.x + 1) * 20 - 1, (raster.y + 1) * 20 - 1);

    iFocus.Canvas.MoveTo((raster.x) * 20, (raster.y) * 20 + 1);
    iFocus.Canvas.LineTo((raster.x) * 20, (raster.y + 1) * 20 - 1);

    iFocus.Canvas.MoveTo((raster.x + 1) * 20 - 1, (raster.y) * 20 + 1);
    iFocus.Canvas.LineTo((raster.x + 1) * 20 - 1, (raster.y + 1) * 20 - 1);
end;
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#18
  Alt 2. Dez 2006, 21:58
Die Datei?
Oder die Grafik?
Bei ersteres:
Hast du es "installiert"?
==> Dann musst du gucken wo die Levels sind (DrawBall.exe-Ordner und dann im ordner levels) und dann das letzte Level löschen.
Hast du ganz normal gespeichert?
==> Dort wos du es gespeichert hast
Bei zweiterem:
Einfach auf "Neue Map" kilcken (oder Datei -> Karte erstellen)

[redBox]
Zitat von C.Schoch:
Ich hab da mal einen Trick beim Zeichnen des Positionsrechtecks eingebaut, dann klappts auch bei mir.
Kompilieren geht nicht wirklich gut Da Ich nur Delphi 2005 hab.
Delphi-Quellcode:
procedure TForm1.iFocusMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  raster : RPoint;
begin
  raster := RPoint(Point(X div 20, Y div 20));
  if (raster.x <> oldPos.x) or (raster.y <> oldPos.y) then begin
    oldPos := raster;
    iFocus.Picture.Assign(iMap.Picture); // &lt;-- Hier zeichne ich einfach die Map in die Auswahlgrafik da scheinbar die Map von der Auswahlgrafik überschrieben wird

    iFocus.Canvas.MoveTo((raster.x) * 20 + 1, (raster.y) * 20);
    iFocus.Canvas.LineTo((raster.x + 1) * 20 - 1, (raster.y) * 20);

    iFocus.Canvas.MoveTo((raster.x) * 20 + 1, (raster.y + 1) * 20 - 1);
    iFocus.Canvas.LineTo((raster.x + 1) * 20 - 1, (raster.y + 1) * 20 - 1);

    iFocus.Canvas.MoveTo((raster.x) * 20, (raster.y) * 20 + 1);
    iFocus.Canvas.LineTo((raster.x) * 20, (raster.y + 1) * 20 - 1);

    iFocus.Canvas.MoveTo((raster.x + 1) * 20 - 1, (raster.y) * 20 + 1);
    iFocus.Canvas.LineTo((raster.x + 1) * 20 - 1, (raster.y + 1) * 20 - 1);
  end;
end;

procedure TForm1.iFocusMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  var
  raster : RPoint;
begin
  if (selected <= 7) and (selected >= 2) then
    iMap.Canvas.Draw((x div 20) * 20, (y div 20) * 20, preBitMaps[0]);

  iMap.Canvas.Draw((x div 20) * 20, (y div 20) * 20, preBitMaps[selected]);

  Map[x div 20][y div 20] := selected;

  raster := RPoint(Point(X div 20, Y div 20)); //&lt;-- Nach dem Zeichnen auf die Grafik muss natürlich die AuswahlGrafik neu gezeichnet werden
  iFocus.Picture.Assign(iMap.Picture);
    iFocus.Canvas.MoveTo((raster.x) * 20 + 1, (raster.y) * 20);
    iFocus.Canvas.LineTo((raster.x + 1) * 20 - 1, (raster.y) * 20);

    iFocus.Canvas.MoveTo((raster.x) * 20 + 1, (raster.y + 1) * 20 - 1);
    iFocus.Canvas.LineTo((raster.x + 1) * 20 - 1, (raster.y + 1) * 20 - 1);

    iFocus.Canvas.MoveTo((raster.x) * 20, (raster.y) * 20 + 1);
    iFocus.Canvas.LineTo((raster.x) * 20, (raster.y + 1) * 20 - 1);

    iFocus.Canvas.MoveTo((raster.x + 1) * 20 - 1, (raster.y) * 20 + 1);
    iFocus.Canvas.LineTo((raster.x + 1) * 20 - 1, (raster.y + 1) * 20 - 1);
end;
Es kann an einem Problem mit der Transparenz liegen. Obwohl ich extra das untere linke Pixel weiß lasse...
Ich wundere mich, warum es bei manchen funzt und bei anderen nicht!
[/redBox]
Fabian
  Mit Zitat antworten Zitat
C.Schoch

 
Turbo Delphi für Win32
 
#19
  Alt 2. Dez 2006, 22:05
Ja die Idee mit der Transparez hat ich auch und hab dann die Tranparenz auf true gestellt das wollt er nicht.

Komisch ist aber wenn ich über die Funktion Picture.Rectangele ein Rechtech zeichne das kleiner als die Grafik ist auf einmal das Spielfeld innerhalb des Rechtecks sichtbar
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#20
  Alt 2. Dez 2006, 22:08
Also ich habe im 1. Post zwei Versionen zu Testen kompliert.
Einmal deine (ziemlich langsam geworden) und einmal eine kleine Veränderung an meiner Grundversion... Mal sehen, das 2. was bringt (weil die Performance bleibt)

Rein logisch betrachtet, dürfte eigentlich dort iFocus nicht weiß werden.
Fabian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 6     12 34     Letzte »    


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 07:58 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