Mapeditor mit variabler Tilegröße
Übersicht

![]() |
BaretBetreff: Mapeditor mit variabler Tilegröße |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo!
Ich versuche einen Mapeditor zu programmieren bei dem man die Tilegröße selbst bestimmen kann. Aber irgendwie ist mein Progamm viel zu langsam. Ohne geladenem Tileset habe ich ca.74Fps danach nur mehr 7Fps. Ich weiß, es ist etwas viel verlangt, aber vielleicht kann sich ja jemand den Code ansehen. Die Funktion am Ende des Codes ist wahrscheinlich der Teil der zu opitimieren ist. Ich poste zum besseren Verständnis trotzdem den ganzen Code. Damit ihr das Programm testen könnt,benötigt ihr folgende dll,Bilder und folgendes Test-Bild. Einfach starten und "Tileset laden" auswählen. Testbild: ![]() Bilder: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() DLL: http://www.8ung.at/ms-online/btools.dll Oder alles in einem Rar-Verzeichnis: http://www.8ung.at/ms-online/Bilder+DLL.rar BlitzBasic: [AUSKLAPPEN]
Vielen Dank im Voraus Mfg Baret |
||
![]() |
diGGaGruppenKaspar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zeile 92: Function 'loadfile' not found | ||
Gestern Nacht Schlug der Regen an mein Fenster
Ich ging durch das dunkle Zimmer und glaubte im Licht der Straßenlampe Den Geist unseres jahrhunderts auf der Straße zu sehen Der uns sagte, daß wir alle am Rande des Abgrunds stehen. - Al Steward Athlon 64 3000+ / Radeon 9600 / 1024mb ddram |
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzBasic: [AUSKLAPPEN] Function tilesetzeichnen() Warum hast du das Flip denn in der For-Schleife? kann es daran liegen? |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzBasic: [AUSKLAPPEN] If ImageRectOverlap(tilesetladen1,370,10,MouseX(),MouseY(),1,1) ThenDas bewirkt zwar nicht sofort den von dir beschriebenen Fehler, ist aber dennoch eine Todsünde ![]() ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dachte ich am Anfang auch, aber es bleibt ja mmer das gleiche Bild, das neu landen macht also nichts aus.
LordChaos |
||
Variety is the spice of life. One day ignore people, next day annoy them. |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es ist völlig egal ob das Bild dasselbe ist oder ein anderes ![]() ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Baret |
![]() Antworten mit Zitat ![]() |
---|---|---|
Erstmal DANKE für Eure vielen Antworten.
@Firstdeathmaker: Habe das Flip jetzt aus der For-Schleife genommen und habe dadurch schon einige Fps gwonnen (habe jetzt 37 statt 7!!) @Hubsi und LordChaos: Ich verstehe nicht so ganz was Ihr meint! Es ist eigentlich so gedacht dass man im Editor durch einen Klick auf den Button "Tileset laden" ein Tileset auswählt, welches anschließend geladen wird. d.h.: Wenn man während dem Editieren bemerkt man bräuchte doch ein anderes Tileset, dann ladet man dieses einfach. @diGGa: Dieser Fehler kommt, wenn du die .dll-Datei nicht im selben Verzeichnis wie den Quellcode hast! Hier nochmal der Link zur DLL: http://www.8ung.at/ms-online/btools.dll Mfg Baret |
||
![]() |
Baret |
![]() Antworten mit Zitat ![]() |
---|---|---|
So habe den Fehler jetzt endgültigt beseitigt.
Habe den "Flip" Befehl total aus der Funktion entfernt und führe ihn nur mehr in der Hauptschleife aus. Dadurch habe ich jetzt 74Fps! ![]() |
||
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jetzt schreib statt "Flip" einfach mal "Flip 0" und ich wette du kommst über 100FPS ![]() |
||
![]() |
Baret |
![]() Antworten mit Zitat ![]() |
---|---|---|
WOW !
Ich kannte diese Art von Flip bisher noch nicht! ![]() Habe jetzt 158Fps ![]() VIELEN DANK Mfg Baret |
||
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Hubsi: Du meinst wenn ich schreibe:
img_bla = LoadImage("bla.bmp") img_bla = LoadImage("bla.bmp") , ich das Bild 2x im Speicher habe? o_O LordChaos |
||
Variety is the spice of life. One day ignore people, next day annoy them. |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, das ist so. Versuch folgendes:BlitzBasic: [AUSKLAPPEN] Print AvailVidMem() ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Baret |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also habe jetzt irgendwie ein neues Problem!
Wenn ich einmal ein Tileset mit Hilfe der dll geladen habe, kann ich keine Datei-Befehle(WriteFile,usw.) ausführen. Weiters kommt beim 2.Verwenden der dll-Funktion(loadfile) eine Fehlermeldung! Ich glaube das ist in etwa so, wie wenn man eine Datei nach Gebrauch nicht schließt (mit closefile). Ich hoffe Ihr wisst was ich meine! Vielleicht könnt ihr selbst ja ein wenig mit der DLL herumprobieren. Oder könnt ihr mir eine Alternative zu dieser Datei-Auswahl nennen? Vielen Dank im Voraus Mfg Baret |
||
![]() |
Baret |
![]() Antworten mit Zitat ![]() |
---|---|---|
Habe das ganze jetzt auf die BlitzSys dll umgestellt.
Der Fehler, dass beim 2. Öffnen eines Tilesets ein Fehler kommt, ist jetzt jetzt nicht mehr vorhanden. Ich kann aber noch immer keine Datei erstellen. Der Code für das Speichern einer Map: BlitzBasic: [AUSKLAPPEN]
Mfg Baret |
||
![]() |
DA |
![]() Antworten mit Zitat ![]() |
---|---|---|
Moin,
Also der Code ist soweit richtig. Ich schätze mal das es an den Types liegt. Hast du die Types auch global deklairt? Thx DarkAngel |
||
Deutscher Blitz Basic Chat |
![]() |
Baret |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sind die Types nicht sowieso Global?
Denn wenn ich Global davor setze, bekomme ich die Meldung "Expecting Identifier"! Aber das Programm kommt gar nicht bis zu den Types, sondern die If-Bedingung (If filename=0) wird bestätigt sobald ich ein Tileset geladen habe!Und filename dürfte(laut Hilfe) nur dann Null sein, wenn ein Fehler beim Laden aufttritt! Wenn ich ohne ein Tileset zu laden speichere, funktioniert es einwandfrei und die Datei wird im gewünschten Ordner angelegt. Mfg Baret |
||
![]() |
DA |
![]() Antworten mit Zitat ![]() |
---|---|---|
Moin,
mh. Setz mal am Anfang: BlitzBasic: [AUSKLAPPEN]
ein. So wird ein Typ global. Thx DarkAngel |
||
Deutscher Blitz Basic Chat |
![]() |
Baret |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also das funktioniert bei mir nicht (Expecting Identifier)
Mfg Baret |
||
![]() |
DA |
![]() Antworten mit Zitat ![]() |
---|---|---|
Moin,
Du must natürlich im Rest des codes auch die Variablen ändern: BlitzBasic: [AUSKLAPPEN]
Thx DarkAngel |
||
Deutscher Blitz Basic Chat |
![]() |
Baret |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sorry, dass ich nicht schneller geantwortet habe!
Also das mit den Types hat leider nichts gebracht! Aber wenn du den Code ansiehst, siehst du, dass das Programm gar nicht bis zum Speichern der Type-Werte kommt,sondern schon vorher aus der If-Bedingung "aussteigt". Denn solbald ich ein Tileset lade, bzw. die Funktion "DLLGetOpenFileName$" verwende, wird bei "WriteFile("Maps\" + mapname + ".map") immer 0 zurückgeliefert. Mfg Baret |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group