[Problem] GUI für RPG Mapeditor

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Rancid

Betreff: [Problem] GUI für RPG Mapeditor

BeitragMi, Apr 02, 2008 23:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Forum erstmal =)

Also um gleich mit der Tür ins Haus zu fallen Very Happy
Bisher habe ich immer mit PureBasic herumprobiert (einige Jahre) bin jetzt aber auf Blitz Basic 3D (ver.1.99) umgestiegen.
Habe heute die RPG Tutorials auf Robsite gefunden, gelesen und nachgebaut.
Und nun da mein sehr simpler RPG Mapeditor funktioniert wollte ich ihm gerne durch eine GUI benutzerfreundlicher machen.
Da BlitzBasic3D keine hat habe ich mir also nach kurzem suchen hier im Forum die Escape GUI
heruntergeladen.
Ein Fenster habe ich dann schon nach dem Lesen des QuickGuides sehr schnell erstellt.
Dieses Fenster sollte quasi als Palette für die Tiles dienen, man hätte sie nur noch anklicken müssen und somit auswählen können, wodurch man auch mehr als die 10 (wie im tut) speichern kann.
Ich würde euch gerne einen Screenshot zeigen aber das will iwie nicht klappenxD

Naja jedenfalls hier ist der code

Code: [AUSKLAPPEN]
Graphics 640,480,32,1

Include "system\escape.bb"

Dim Tile(9)

;Bilder und Tileset laden

Hintergrund = LoadImage("Back.bmp")
Tileset = LoadAnimImage("tileset.bmp",32,32,0,10)

;Globale Variablen

Global x

;Fenster und Bilder erstellen

Haupt.eg_window = EG_Window(520,10,120,470,"F.B.Rpg-MapMaker",eg_nomove)
Tile1.eg_image = EG_Image (Haupt,5,10,Tileset)
Tile2.eg_image = EG_Image (Haupt,5,45,Tileset)




SetBuffer BackBuffer()
Repeat
   Cls

   EG_Main()

 If KeyDown(1) Then End


   Flip
Forever

EG_Exit()
End

Also bitte nicht wundern ich hab den editor noch als einzelne datei, ich war gerade erst dabei mit und mit die Funktionen des Editors einzubauen^^[/code]

Mr.Hyde

Newsposter

BeitragDo, Apr 03, 2008 0:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann erstmal: Herzlich Willkommen im BlitzBasic Portal!
Zum Thema: Du hast zwar super beschrieben was du vor hast, aber nicht einmal gesagt was dein eigentliches Problem ist. Das würd ich schon gern wissen. Sonst kann ich dir leider nicht helfen. Wink
BBP News RSS | Chaos Interactive | Watanien 2 Screens, Infos und Download | Watanien 2 Worklog | PuzzleMasters
http://abgeordnetenwatch.de - http://www.regierungs-beratung.de - Der Regierung auf die Finger schauen
 

Rancid

BeitragDo, Apr 03, 2008 0:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Aiaiaiai xD hab ich darüber ganz vergessen
Naja das Problem ist einfach das ich die Map Tiles mit LoadAnimImage Lade, wodurch ich dann
das Problem habe das ich die Tiles nicht als Buttons einfügen kann.
Tile1.eg_image = EG_Image (Haupt,5,10,Tileset)
Tile2.eg_image = EG_Image (Haupt,5,45,Tileset)
besser gesagt das erste Tile klappt nur krieg ich es nicht hin das ein anderes als das erste 32*32 große Tile angezeigt wird.
Ich hab auch schon verschiedene mehr oder weniger schlaude dinge probiert (unter anderem eine SchleifexD)
aber ich kriege es nicht hin.
Auch das was ich für ds logischte hielt klappte nicht
Tile1.eg_image = EG_Image (Haupt,5,10,Tileset)
Tile2.eg_image = EG_Image (Haupt,5,45,Tileset+1)
Desewegen frage ich hier da ich mir schon den ganzen Nachmittag den kopf darüber zerbreche=)

Mr.Hyde

Newsposter

BeitragDo, Apr 03, 2008 0:56
Antworten mit Zitat
Benutzer-Profile anzeigen
schau dir am besten mal den Befehl Code: [AUSKLAPPEN]
BUT_Tile.EG_ImgButton = EG_ImgButton(TileWindow, x_Window_position, y_Window_position,Image,Frame_des_Images (mit LoadAnimImage geladen),"MouseOverText")

an. Damit hab ich es gelöst und das klappt auch gut.
BBP News RSS | Chaos Interactive | Watanien 2 Screens, Infos und Download | Watanien 2 Worklog | PuzzleMasters
http://abgeordnetenwatch.de - http://www.regierungs-beratung.de - Der Regierung auf die Finger schauen
 

Rancid

BeitragDo, Apr 03, 2008 1:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm ja ich verstehe was die Zeile bewirkt, das mit den Frames hatte ich auch schon gelesen in der Hilfe zur Escape GUI.
Nur würde ich es gerne hinbekommen das die Tiles alle statisch engezeigt werden.
Also so das ich mir einfach eines davon wie aus einer Liste aussuche es anklicke und dann damit auf der map rum malen kann.
Kannst du mir da noch weiterhelfen ?
Aber schonmal danke für deine Hilfe ^^ und das um die Uhrzeit Very Happy

Mr.Hyde

Newsposter

BeitragDo, Apr 03, 2008 1:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Soweit ich dich verstehe möchtest du so eine Liste mit deinen Tiles haben, die du anklicken kannst.
user posted image

Dein Tileset lädst du in deinem Code so:
Code: [AUSKLAPPEN]
Tileset = LoadAnimImage("tileset.bmp",32,32,0,10)

Die letzte Zahl gibt die Frames an. Die Buttons musst du alle einzeln erstellen, aber du kannst dabei auf dein Image mit den 10 Frames zurückgreifen. Dazu musst du natürlich beim anlegen der Buttons berücksichtigen, dass sich die Position verändern muss, da sonst alle übereinander liegen und die Framenummer bei jedem Button um eins erhöht werden muss.
Code: [AUSKLAPPEN]

BUT_Tile1.EG_ImgButton = EG_ImgButton(TileWindow, 0, 0, Image, 0,"MouseOverText")
BUT_Tile2.EG_ImgButton = EG_ImgButton(TileWindow, 32, 0, Image, 1,"MouseOverText")
BUT_Tile3.EG_ImgButton = EG_ImgButton(TileWindow, 64, 0, Image, 2,"MouseOverText")
...

ich hoffe das hilft dir. Um die Buttons nachher zu benutzen musst du natürlich die entsprechenden Abrufroutinen der GUI benutzen.

EDIT: Danke Silver_Knee... C&P sollte man auch benutzen können Very Happy
EDIT2: Ja nur die von Silver_Knee stimmt. Entschuldige *auf die Uhr verweis*
BBP News RSS | Chaos Interactive | Watanien 2 Screens, Infos und Download | Watanien 2 Worklog | PuzzleMasters
http://abgeordnetenwatch.de - http://www.regierungs-beratung.de - Der Regierung auf die Finger schauen
  • Zuletzt bearbeitet von Mr.Hyde am Do, Apr 03, 2008 1:52, insgesamt 5-mal bearbeitet

Silver_Knee

BeitragDo, Apr 03, 2008 1:20
Antworten mit Zitat
Benutzer-Profile anzeigen
*hust*du wolltest sagen:
Code: [AUSKLAPPEN]

               Die X Position und Y Position verändern        Den Frame Erhöhen
                                                 V   V        V
BUT_Tile1.EG_ImgButton= EG_ImgButton(TileWindow,  0, 0,Image, 0,"MouseOverText")
BUT_Tile2.EG_ImgButton= EG_ImgButton(TileWindow, 32, 0,Image, 1,"MouseOverText")
BUT_Tile3.EG_ImgButton= EG_ImgButton(TileWindow, 64, 0,Image, 2,"MouseOverText")
....


EDIT Achja und die 1 2 3 gehören an den TypeTräger nicht den Type selbst oder?
 

Rancid

BeitragDo, Apr 03, 2008 1:43
Antworten mit Zitat
Benutzer-Profile anzeigen
@Mr.Hyde Ja genauso wie auf dem Bild habe ich es gemeint.
Also das mit den Frames ist ja eine gute Idee.
Ich habe das natürlich jetzt auch direkt probiert aber aus ieinem Grund will es noch immer nicht so klappen.
Es werden zwar 3 bilder auf dem Fenster gezeigt aber das erste Button zeigt nicht das Tile 0,
sondern 1 sowie auch der 2te Button.
Der dritte verhält sich am ausgefallensten denn er zeigt auch Tile 1 aber wenn man mit der Maus drauf klickt verändert er sich zu Tile 2.
Liegt das daran das ich iwie mein Tileset falsch lade ?

Btw: Ich habe beide methoden ausprobiert aber nur die von Silver_Knee stimmt Very Happy

Code: [AUSKLAPPEN]
BUT_Tile1
BUT_Tile2
BUT_Tile3


So noch mein aktueller Code

Code: [AUSKLAPPEN]
Graphics 640,480,32,1

Include "system\escape.bb"


;Bilder und Tileset laden

Tileset = LoadAnimImage("tileset.bmp",32,32,0,10)

;Fenster und Bilder erstellen

TileWindow.eg_window = EG_Window(520,10,120,470,"F.B.Rpg-MapMaker",eg_nomove)
BUT_Tile0.EG_ImgButton = EG_ImgButton(TileWindow, 5, 10,Tileset,0,"MouseOverText")
BUT_Tile1.EG_ImgButton = EG_ImgButton(TileWindow, 40, 45,Tileset,1,"MouseOverText")
BUT_Tile2.EG_ImgButton = EG_ImgButton(TileWindow, 5, 80,Tileset,2,"MouseOverText")



EDIT:

Ich hab es Very Happy

Code: [AUSKLAPPEN]
BUT_Tile0.EG_Image = EG_Image(TileWindow, 5, 10,Tile,False,0,"MouseOverText")
BUT_Tile1.EG_Image = EG_Image(TileWindow, 40, 45,Tile,False,1,"MouseOverText")
BUT_Tile2.EG_Image = EG_Image(TileWindow, 5, 80,Tile,False,2,"MouseOverText")


so klappt es ^^
  • Zuletzt bearbeitet von Rancid am Do, Apr 03, 2008 2:16, insgesamt einmal bearbeitet

Mr.Hyde

Newsposter

BeitragDo, Apr 03, 2008 2:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja. Das liegt (entschuldige ein weiterer "verschlafer" meinerseits) daran, dass ich fälschlicherweise angenommen hatte "frames" würde das Frame des Images sein. Ist leider nicht so. "frame" ist die Anzahl der Frames die für diesen einen Button vorgesehen sind. An deiner Stelle würde ich also dein Image mit den Tiles in ein Dimfeld laden (jedes Bild einzeln) und dann das einzelne Bild benutzen. Frame muss dann immer 1 sein, da du ja nur ein Bild für den Button haben möchtest.
BBP News RSS | Chaos Interactive | Watanien 2 Screens, Infos und Download | Watanien 2 Worklog | PuzzleMasters
http://abgeordnetenwatch.de - http://www.regierungs-beratung.de - Der Regierung auf die Finger schauen
 

Rancid

BeitragDo, Apr 03, 2008 2:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Hehe kein Problem ^^ ist um die Uhrzeit ja auch normal
also ich das mit Dim hab ich auch schon heute probiert aber es wollte nit xD
Naja ich hab eben die Lösung für mein Prob gefunden ich hab sie oben gepostet.
Danke für eure Hilfe =)
 

Rancid

BeitragDo, Apr 03, 2008 15:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm jetzt wo die Bilder angezeigt werden habe ich ein Problem damit das sich das ausgewählte Tile ändert wenn man ein Bild anklickt.

"eg_event_image wird zurückgegeben wenn in ein Image geklickt wurde"

demnach müsste es so klappen

Code: [AUSKLAPPEN]
;Globale Variablen Festlegen

Global x,y,mx,my,mapx,mapy,tile = 1

;Bilder und Tileset laden

Tileset = LoadAnimImage("tileset.bmp",32,32,0,10)

Repeat
 
 Cls
 SetBuffer BackBuffer()
 EG_Main()

;Fenster und Bilder erstellen

 TileWindow.eg_window = EG_Window(520,0,120,480,"F.B.Rpg-MapMaker",eg_nomove)
 BUT_Tile0.EG_Image = EG_Image(TileWindow, 5, 5, Tileset,False,0)
 BUT_Tile1.EG_Image = EG_Image(TileWindow, 5, 40, Tileset,False,1)
 BUT_Tile2.EG_Image = EG_Image(TileWindow, 5, 75, Tileset,False,2)
 BUT_Tile3.EG_Image = EG_Image(TileWindow, 5, 110, Tileset,False,3)
 BUT_Tile4.EG_Image = EG_Image(TileWindow, 5, 145, Tileset,False,4)
 BUT_Tile5.EG_Image = EG_Image(TileWindow, 5, 180, Tileset,False,5)
 BUT_Tile6.EG_Image = EG_Image(TileWindow, 5, 215, Tileset,False,6)
 BUT_Tile7.EG_Image = EG_Image(TileWindow, 5, 250, Tileset,False,7)
 BUT_Tile8.EG_Image = EG_Image(TileWindow, 5, 285, Tileset,False,8)
 BUT_Tile9.EG_Image = EG_Image(TileWindow, 5, 320, Tileset,False,9)

 If eg_event_image = BUT_Tile0 Then tile = 0
 If eg_event_image = BUT_Tile1 Then tile = 1
 If eg_event_image = BUT_Tile2 Then tile = 2
 If eg_event_image = BUT_Tile3 Then tile = 3
 If eg_event_image = BUT_Tile4 Then tile = 4
 If eg_event_image = BUT_Tile5 Then tile = 5
 If eg_event_image = BUT_Tile6 Then tile = 6
 If eg_event_image = BUT_Tile7 Then tile = 7
 If eg_event_image = BUT_Tile8 Then tile = 8
 If eg_event_image = BUT_Tile9 Then tile = 9


Tut es aber nicht.. weiss jemand rat ?

Thorsten

BeitragDo, Apr 03, 2008 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Images nicht in der Hauptschleife erstellen/laden ..

mfG,

Thorsten
 

Rancid

BeitragDo, Apr 03, 2008 15:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm jetzt bin ich ein wenig schockiert als ich gestern nacht daran rumgewerkelt habe wollte es einfach nicht klappen das der die Dinger zeichnet also packte ich sie in die Schleife.
Jetzt hab ich sie eben rausgenommen und es klappt xD
Muss gestern wohl an der späten uhrzeit gelegen haben.. danke jedenfalls für deine Hilfe

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group