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

![]() |
WEBLinkBetreff: Map-Editor (Speed und Kartengröße) für RPG ehemals Malpro. |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ist writepixel etwa kein pixel-befehl? | ||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
![]() |
WEBLink |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() |
||
www.netzman.net - blitzbasic and assembler resources
User posted image |
![]() |
WEBLink |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mhh, Das mit dme Buffer 2* Klappt leider nicht sieht dann recht irrsinig aus.
Trotzdem Danke |
||
junky |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
poste am besten wirklich ma des codestück ... | ||
gestern stand ich noch vorm Abgrund
heute bin ich einen Schritt weiter... |
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() 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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group