Mapeditor code -> Problem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

mister_nobody

Betreff: Mapeditor code -> Problem

BeitragDi, Okt 23, 2007 19:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, das ist mein erster Post und ich beginne ihn gleich mit einer Frage ^^

Ich bin dabei einen Map-Editor nach einem tutorial (robsite.de) zu coden, natürlich abgeändert, wobei ich leider mit den Variablen nicht mehr durchblicke xD - im Tutorial hat der Schreiber das ganze mit mehreren einzelnen Bildern gemacht, ich möchte allerdings die Tiles in einem einzigen Typeset laden.
Dabei haperts leider bei der drawblock eingabe, da ich nicht genau weiß, welche Variable ich nun bei den Frames eingeben sollte =(

Aber seht selbst, ich hoffe ihr könnt etwas mit dem Code anfangen (ich glaube, er ist nicht so gut eingerückt^^):

Code: [AUSKLAPPEN]
;Map-Editor nach einem Tutorial (natürlich nicht übernommem ->
;verwende keine einzelnen images, sondern ein tileset, da liegt auch
;das Problem =) )

setbuffer backbuffer()
global mx=mouseX(), my=Mousey()
global tile = 1
global datei$
global tileX=0
global tileY=0
global frame = 0
global Name$
global Anzahl
global Breite
global Hoehe
global mapX
global mapY
global ende = 0
global Speicherort$ = "map1.map"

Print "Geben Sie nun bitte den Namen des Tilesets ein: "
name = input("Name: ")
print "Jetzt die Anzahl der Tiles: "
anzahl = Input("Anzahl: ")
Print "Die horizontale Länge eines Tiles: "
breite = input("Horizontale Länge (in Pixel): ")
Print "Und zuletzt die vertikale Länge eines Tiles: "
hoehe = Input("Vertikale Länge (in Pixel): ")
Print "Jetzt kommt die Map -> bitte Länge: "
mapX = input("Map-Länge (in Tiles): ")
print"Und zum Schluss der Eingaben die Map-Höhe: "
mapY = Input("Map-Höhe (in Tiles): ")

;Grafikmodus auswählen
Print "Geben Sie bitte den Grafikmodus an"
print "'end' (ohne ') eingeben zum beenden"
Aufloesung$ = Input("(Beispiel: 1024x768) - default 1024x768: ")


Select Aufloesung
   case "1024x768"
      Graphics 1024,768,16,1
   case "800x600"
      graphics 800,600,16,1
   case "640x480"
      graphics 640,480,16,1
   case "end"
      end
   default
      graphics 1024,768,16,1
end select

clscolor 255,0,255
cls

Tileset = Loadanimimage(name,breite,hoehe,0,anzahl)

dim map(mapX,mapY)

;----------------------------------------------------------:
;ENDLICH - DER ECHTE ANFANG - ALLES EINGESTELLT, LOS GEHTS |
;----------------------------------------------------------:


For x = 1 to mapX
   for y = 1 to mapY
      map(x,y) = anzahl
   next
next

;-------------------HAUPTSCHLEIFE--------------------

While ende = 0
   cls
   If keyhit(1) then save()
   
   ;Tiles durchwählen
   If mousehit(2)
      tile = tile + 1
      If tile = anzahl then tile = 0
   endif
   
   ;Wenn maus innerhalb von map dann "tile-maus"
   If mouseX() < x*breite then mx=MouseX() / breite
   If mouseY() < y*hoehe  then my=MouseY() / hoehe
   
   ;Map den Wert eines Tiles zuweisen
   If mousedown(1) then map(mx,my)=tile
   
   ;Alles zeichnen
   For x = 1 to mapX
      for y = 1 to mapY
         drawblock tileset, x*breite, y*Hoehe, map(tile,tile)
      next
   next
   
   ;tile-cursor
   drawblock tileset,mx*breite,my*hoehe,tile
   
flip      
wend

end

;---------------------------FUNKTIONEN------------------------------


Function save()
   Print "Wollen Sie die Datei unter einem eigenen Namen speichern?"
   print "(default = map1.map) (j/n)"
   wahl$ = input("")
   
   Select Wahl
      case "j"
         name = input("Wie soll die Map heißen? (mit Endung) ")
      default
         name = "map1.map"
   end select
   
   Print "Datei wird unter ausgewähltem Namen gespeichert..."
   
   datei=writefile(name)
   for x = 1 to mapX
      for y = 1 to mapY
         writeline datei, map(mapX,mapY)
      next
   next
   closefile datei
   
   Print "Datei wurde unter folgendem Dateinamen gespeichert: " +name
   delay 3000
   ende=1
end function


ich hoffe ihr könnt mir helfen,
mfg,
Mister_Nobody
...biep...biep...biep...biep...biep

BigMaexle

BeitragDi, Okt 23, 2007 19:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Animation brauchst du da gar nich, Lad dein Bild normal und nutzte dann ql:DrawImageRect

PS: Willkommen im Forum Wink
--------------------------------------
Ich bin unfreiwillig ein Mitglied dieser kapitalistischen Gesellschaft, wo jeder Geldgeile Unternehmer an mein Geld will und ich selbst bei meinen Entscheidungen so gut wie willenlos bin...... und ich bin glücklich drüber
 

mister_nobody

BeitragMi, Okt 24, 2007 17:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank für die schnelle Antwort=) - habe es gerade ausprobiert, doch bis darauf, dass jetzt oben links die richtige größe einmal gezeichnet ist und der cursor eine kleine version des tiles enthält, hat sich leider nichts geändert Sad - könntest du vielleicht schreiben wie du das meintest, oder mir noch eine andere hilfestellung geben?

Hier der code:

Code: [AUSKLAPPEN]
;Map-Editor nach einem Tutorial (natürlich nicht übernommem ->
;verwende keine einzelnen images, sondern ein tileset, da liegt auch
;das Problem =) )

setbuffer backbuffer()
global mx=mouseX(), my=Mousey()
global tile = 1
global datei$
global tileX=0
global tileY=0
global frame = 0
global Name$
global Anzahl
global Breite
global Hoehe
global mapX
global mapY
global ende = 0
global Speicherort$ = "map1.map"

Print "Geben Sie nun bitte den Namen des Tilesets ein: "
name = input("Name: ")
print "Jetzt die Anzahl der Tiles: "
anzahl = Input("Anzahl: ")
Print "Die horizontale Länge eines Tiles: "
breite = input("Horizontale Länge (in Pixel): ")
Print "Und zuletzt die vertikale Länge eines Tiles: "
hoehe = Input("Vertikale Länge (in Pixel): ")
Print "Jetzt kommt die Map -> bitte Länge: "
mapX = input("Map-Länge (in Tiles): ") : mapX = mapX -1
print"Und zum Schluss der Eingaben die Map-Höhe: "
mapY = Input("Map-Höhe (in Tiles): ") : mapY = mapY - 1

;Grafikmodus auswählen
Print "Geben Sie bitte den Grafikmodus an"
print "'end' (ohne ') eingeben zum beenden"
Aufloesung$ = Input("(Beispiel: 1024x768) - default 1024x768: ")


Select Aufloesung
   case "1024x768"
      Graphics 1024,768,16,1
   case "800x600"
      graphics 800,600,16,1
   case "640x480"
      graphics 640,480,16,1
   case "end"
      end
   default
      graphics 1024,768,16,1
end select

clscolor 255,0,255
cls

Tileset = Loadimage(name)

dim map(mapX,mapY)

;----------------------------------------------------------:
;ENDLICH - DER ECHTE ANFANG - ALLES EINGESTELLT, LOS GEHTS |
;----------------------------------------------------------:


For x = 1 to mapX
   for y = 1 to mapY
      map(x,y) = anzahl
   next
next

;-------------------HAUPTSCHLEIFE--------------------

While ende = 0
   cls
   If keyhit(1) then save()
   
   ;Tiles durchwählen
   If mousehit(2)
      tile = tile + 1
      If tile = anzahl then tile = 0
   endif
   
   ;Wenn maus innerhalb von map dann "tile-maus"
   If mouseX() < x*breite then mx=MouseX() / breite
   If mouseY() < y*hoehe  then my=MouseY() / hoehe
   
   ;Map den Wert eines Tiles zuweisen
   If mousedown(1) then map(mx,my)=tile
   
;   Alles zeichnen
   For x = 1 to mapX
      for y = 1 to mapY
         drawblockrect tileset, x, y,tile*breite,0,breite,hoehe
      next
   next
   
   ;tile-cursor
   drawblockrect tileset,mx*breite,my*hoehe,tile*breite,0,breite,hoehe
   
flip      
wend

end

;-----------------------------------------------------
;--------------------FUNKTIONEN-----------------------
;-----------------------------------------------------


Function save()
   Print "Wollen Sie die Datei unter einem eigenen Namen speichern?"
   print "(default = map1.map) (j/n)"
   wahl$ = input("")
   
   Select Wahl
      case "j"
         name = input("Wie soll die Map heißen? (mit Endung) ")
      default
         name = "map1.map"
   end select
   
   Print "Datei wird unter ausgewähltem Namen gespeichert..."
   
   datei=writefile(name)
   for x = 1 to mapX
      for y = 1 to mapY
         writeline datei, map(mapX,mapY)
      next
   next
   closefile datei
   
   Print "Datei wurde unter folgendem Dateinamen gespeichert: " +name
   delay 3000
   ende=1
end function
   
...biep...biep...biep...biep...biep

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group