MapEditor

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
Darie
Beiträge: 204
Registriert: 14.09.2004 21:51

Beitrag von Darie »

ich hatte am Anfang auch ein ScrollAreaGadget benutzt hab mich dann aber für zwei Scrollbars entschieden, weil das ScrollAreaGadget beim verschieben der Balken den Hinhalt bzw. das Image mitscrollt. Dann hätte ich also ein Image erstellen müssen, das auch so gross ist, wie die Map. Allerdings ist ein Image auf 8192Pix beschränkt. was bedeuten würde das die Mapgröße auch auf ca 256x256 Tiles beschränkt wäre. Deshalb kein ScrollArea Gadget und auch kein Resizable Fenster. Die Image Größe sollte der einfachheithalber immer durch alle Tilegrößen teilbar sein. Deswegen die feste Größe von 892x640 Pixeln für den Malbereich

Ach, ich glaube ich weiss was du meinst. Ich probiers mal aus noch eine ScrollArea einzubauen.... Allerdings hätte man dann vier Scrollbalken, falls man das Fenster verkleinert.....
Repeat
PureBasic
ForEver
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Ich hab mich gerade über dein Signaturbild(chen) gewundert und dachte so :
Meine Güte, das muss doch riesig sein und tatsächlich:
187kb !
Du hast wohl kein Herz für Modemuser, wa ? :lol:
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@Topic
deine herangehensweise ist soweit schon mal interessant.
ist es denn performant genug?

auf jeden fall solltest du die gezwungene desktopgröße ändern,
so etwas macht ein programm nahezu unbrauchbar.

@Signatur:
mist, da hab ich ja noch nie drauf geachtet, das wirkt so klein und harmlos...
also, 187KB für ein Signaturbanner ist wirklich extrem übertrieben.
bitte ändere das.

@HeXOR
danke für den hinweis...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Darie
Beiträge: 204
Registriert: 14.09.2004 21:51

Beitrag von Darie »

Gott, da hast du recht. Wenn man DSL hat fällt einem sowas überhaupt nicht mehr auf...... (187KB sind eigentlich nicht viel, oder doch...
Wie gesagt, das mit der Auflösung werde ich noch ändern, ist meiner Meinung nach aber auch nicht so wichtig (auf jeden Fall werde ich kein ScrollAreaGadget benutzen, dass hatte ich schon ausprobiert) :D
Performant ist es eigentlich schon... FPS bei mir 438 ohne VSync.
Vielleicht sollte ich hier etwas mehr über die TileEngine an sich schreiben:
Also seitdem ich mir vorgenommen hatte das Retro Jump'Run' Spiel Gargoyles Quest nachzuprogrammieren, war ich auf der Suche nach einem MapEditor und einer Tile Engine für PB. Bin aber nicht wirklich fündig geworden und hab dann angefangen eine eigene TileEngine zu schreiben und ebenhalt auch einen MapEditor dafür.
Die Tile Engine ünterstützt normale Sprites mit einer transparenten Farbe.
(Alphasprites bau ich wahrscheinlich auch noch ein, mal sehen, hab mit Alphamasken und -kanal noch nicht herumexperimentiert).
Die Tiles werden als einzelne PNGs gespeichert und sind nicht wie üblich in einem Bild gespeichert. Allerdings kann man die Tiles im Mapeditor in eine Datei packen, diese wird dann beim Laden der Map wieder entpackt.
Die Map kann animierte Tiles enthalten und Parallaxscrolling funzt auch schon. Es sind mehrere Layer möglich, die unterschiedliche Tilegrößen haben können. Wer ein Metafeld will, kann eins erstellen und Werte dort eintragen. Ein Tile Grabber ist auch dabei, womit man Tiles aus einer Bilddatei rausgrabben kann. Ausserdem kann mein ein Hintergrundbild oder eine Hintergrundfarbe benutzen.
MapEngine und GameEngine (Kollsionsabfragen, Gegner,Schüsse, beweglich Elemente etc.) sollen aber getrennt bleiben. Somit kann man mit der MapEngine Shooter, Jump'n'Runs oder Strategiespiele proggen.
Wenn der Editor fertig ist, fange ich an eine GameEngine zu schreiben.

Hier ist der Code von der Tile Engine:
http://rapidshare.com/files/17126482/MapEngine9.rar

zur MapEngine:

Mit "LoadMap" wird die Map geladen und initialisiert
Dann einfach in die GameSchleife den Befehl DrawMap einfügen
Mit FreeMap wird wieder alles freigegeben
Enthält die Map Animationen, einfach den Befehl MapAnimation mit Verzögerung in ms einfügen.
In der Prozedur ScrollScreen wird die Map mit den Pfeiltasten gescrollt.
(Es wird einfach nur den Wert von Level\ScreenPos geändert)
Repeat
PureBasic
ForEver
Antworten