Map-Editor (Speed und Kartengröße) für RPG ehemals Malpro.

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

WEBLink

Betreff: Map-Editor (Speed und Kartengröße) für RPG ehemals Malpro.

BeitragDi, Dez 30, 2003 22:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

wie kann man ein malprogramm mit BB machen, mit Dim geht es aber nach ca 1000 Feldern wars das mit der Geschwindigkeit. ich denke mal das wird dann bei Types nicht anders sein.

Brauchen tu ich das, um in einen Mapeditor den Boden selber malen lassen zu können.
  • Zuletzt bearbeitet von WEBLink am Sa, Jan 03, 2004 14:48, insgesamt einmal bearbeitet
 

konstantin

BeitragDi, Dez 30, 2003 22:45
Antworten mit Zitat
Benutzer-Profile anzeigen
o_O. Versuchs einmal mit ImageBuffer(). Damit kannst du einfach auf ein leeres Bild malen (welches du vorher mir CreateImage() erstellt hast) und dieses hinterher speichern. Schau mal in der Onlinehilfe.

Kryan

BeitragFr, Jan 02, 2004 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit BB+ kann man auch Canvas machen! So kann man es proffesionell aussehen lassen!
Du brauchst die Variable aktuelleFarbe , in der speichert man die aktuelle Farbe, wie:0,255,0
und überprüfst in der Hauptschleife ob die Maus taste gedrückt wird:

Code: [AUSKLAPPEN]

SetBuffer CanvasBuffer()
. . .
If MouseHit=1 Then
 Color aktuelleFarbe
 Plot MouseX(),MouseY()
End IF
;und die Speicherfunktion:
SaveBuffer FrontBuffer(),"Bilddate.bmp"
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Jan_

Ehemaliger Admin

BeitragFr, Jan 02, 2004 15:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
DumKöpf- Manchmal fragt man sich ob die Intelligenz noch forhanden ist, meiner Meinung nach leben nur noch die Idioten!


Wenn du einen Map-editor machen willst dann mache eine Tile-engine.

Bilder werden mit Loadimage geladen und mit Drawimage gemalt --> du bruchst keine Pixelbefehle.

Bei einen Malprogramm machst du
Drawimage Bild,0,0
setbuffer imagebuffer(Bild)
if mousedown(1) then writepixel,0,0,231ds
setbuffer backbuffer()
between angels and insects

Kryan

BeitragFr, Jan 02, 2004 15:27
Antworten mit Zitat
Benutzer-Profile anzeigen
ist writepixel etwa kein pixel-befehl?
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

WEBLink

BeitragSa, Jan 03, 2004 3:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine Tileengine hab ich gemacht nur bei einer Kartengröße so sagen wir 1500*1500 Pixeln. Wenn da ein Feld 19*19 groß ist ergibt das sumarum WAU und das kostet natürlich Speed. Das wollte ich vermeiden, des wegen wollte ich den Untergrund("Ebene") selbst malen lassen.

Netzman

BeitragSa, Jan 03, 2004 14:18
Antworten mit Zitat
Benutzer-Profile anzeigen
probier mal eine kombination banks / types aus. allerdings ist von maps aus einem bild abzuraten, bringt mehr nachteile als vorteile. bei einer so kleinen tilemap mit 78,95 tiles seitenlänge hast du nicht viel speedverlust Smile
www.netzman.net - blitzbasic and assembler resources
User posted image

WEBLink

BeitragSa, Jan 03, 2004 14:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Mhh, gut das mit dem Zeichnen war ja nur ne Idee^^

Naja, bei meinem PC PIII 667 Mhz, 256 MBRam, GeForce2 ist der Speed bei der Kartengröße von 60 auf 30 FPS gesunken. Ich werde heute mal den Editor zum Testen für euch On-stellen.

Aber erst benenn ich mal das Thema um hat jetzt ja nix mehr damit zu tun^^
 

junky

BeitragSa, Jan 03, 2004 15:02
Antworten mit Zitat
Benutzer-Profile anzeigen
das ist leidergottes normal @weblink ( vermute ich zumindest, da ich auch mal so einen ähnlichen code online gestellt hatte und mir keiner in irgendeiner art helfen konnte mehr speed rauszuholen ... ohne tilemap hatte das spiel 1200 mit tilemap 260 )
es gibt allerdings doch noch einen kleinen trick - lass deinen kompletten buffer nur jeden 2. durchlauf malen ( musste halt schaun, ob es noch was aussieht, manchmal gehts , manchmal nicht ) - die fps sind bei mir danach auf etwa 540 gestiegen
gestern stand ich noch vorm Abgrund
heute bin ich einen Schritt weiter...

WEBLink

BeitragSa, Jan 03, 2004 20:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Mhh, Das mit dme Buffer 2* Klappt leider nicht sieht dann recht irrsinig aus.

Trotzdem Danke
 

junky

BeitragSa, Jan 03, 2004 21:53
Antworten mit Zitat
Benutzer-Profile anzeigen
poste am besten wirklich ma des codestück ...
gestern stand ich noch vorm Abgrund
heute bin ich einen Schritt weiter...

Jan_

Ehemaliger Admin

BeitragDi, Jan 06, 2004 9:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist eine Tilemap:
010010
121401
116080
045211
010618

Die verschiedenen Bilder sind die verschidenenen Zahlen!

so, die zeichnest du mit Drawblock!
wenn du nun eine Tilemap mit 5120*5120 Tiles hast wovon jedes 64*64 Pixel hat, ist dein 667MHZ im Arch!,
Darum nimm einfach das hier:

Xpos=Xposition
Ypos=Yposition

Code: [AUSKLAPPEN]
dim Tiles(5120,5120) ;hierrein die Tilemap laden!

for x=(xPos/64)-1 to (Grasphicsweight()/64)+1
  for y=(yPos/64)-1 to (Grasphicsheight()/64)+1
    drawblock Tileset,X*64-Xops,y*64-yPos,Tiles(x/64,y/64)
  next
next


ACHTUNG, nur erklärungs code, functioniert eventuell nicht!

Damit werden nur die Tiles gezeichnet, die auch auf dem Bildschirm sind!
--> Unendliche Weiten, Faszinierend!
aber auf den Ramm achten!

Denn:
5120*5120*4 = 104857600 / 1024 / 1024 = 100MB!
Und das ohne Layer (mehrere Stöcke) und ohne Bilder!

Jetzt mal der Test:
3 Layer = 300MB
+30 MB Bilder = 330MB
+Verschiedene Strings usw. =340 MB
+Sounds = 400MB!

und das für ein 2D Spiel!

--> entweder zwschendurch laden, oder kleinere Maps!
between angels and insects

TheShadow

Moderator

BeitragDi, Jan 06, 2004 12:52
Antworten mit Zitat
Benutzer-Profile anzeigen
wieso nimmst du nicht 1 byte pro tile???

selbst wenn du dim nehmen willst, kannst du 4 Layer in ein INT quetschen...
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

Jan_

Ehemaliger Admin

BeitragDi, Jan 06, 2004 13:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Smile

Gut frage!
nun meine ausrede:
5120 * 5120 = 26214400 / 256 =102400 (sind immernoch 25MB!)
Jedes Tile Würde dann 100'000 mal vorkommen! ist mir leicht zuviel
(Das ist ne gute ausrede)

Natürlich braucht man aber auch so ein großes Tileset!
Da würde es besser sein, wenn man verschiedene Dateien mit tilesets lädt und das in 2 byte zu speichern 1.Tilesetnummer,2.Frame

Dim Tiles(5120,5120,2,1)
X,Y,Layer,die 2 Dinger
--> 150MB!
between angels and insects

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group