frage zu eigenem "mapeditor"
Übersicht

obi79Betreff: frage zu eigenem "mapeditor" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hi!
hatte mich als völliger 'noob' an ein snake-tutorial begegen und daraus ist dann eigentlich der editor entstanden. ich würde nun gerne eure meinung hören ob es in dieser art und weise überhaupt sinn macht wie ich es angestellt habe. funktionsumfang derzeit noch etwas gering: - mapgröße statisch - nur 2 objekte einzufügen - speichern und laden - defaultmap die map kann man dann entsprechend in ein 'spiel' laden um zu sehen ob es läuft... kollision wird erkannt... screens: editor: spiel: code: editor: Code: [AUSKLAPPEN] DrawBlock back, (x+1)*16,(y+1)*16 End Select If x < 37 Then x=x+1 Else x=0 y=y+1 EndIf Next ;items zeichnen x=0 y=0 For i = 1 To 1064 Select map(x,y) Case 1 DrawImage water, (x+1)*16,(y+1)*16 Case 2 DrawImage beer, (x+1)*16,(y+1)*16 End Select If x < 37 Then x=x+1 Else x=0 y=y+1 EndIf Next ;map laden If KeyDown(59) Then Locate 650,300 dat_load$=Input$("Ladedatei: ") datei = ReadFile("data/"+dat_load$) For x = 0 To 37 For y = 0 To 27 map(x,y) = ReadByte(datei) Next Next CloseFile datei EndIf ;blankmap laden If KeyDown(63) Then datei = ReadFile("data/map_blank.txt") For x = 0 To 37 For y = 0 To 27 map(x,y) = ReadByte(datei) Next Next CloseFile datei EndIf ;map speichern If KeyDown(88) Then Locate 650,300 dateiname$=Input$("Speichername: ") datei = WriteFile("data/"+dateiname$+".map") For x = 0 To 37 For y = 0 To 27 WriteByte datei, map(x, y) Next Next Text 650,315,"Datei "+dateiname$+".map gespeichert." Delay 2000 CloseFile datei EndIf ;item wählen If MouseHit(1) Then koord_x = x_maus/16-1 koord_y = y_maus/16-1 map(koord_x,koord_y)=art EndIf If MouseHit(2) Then koord_x = x_maus/16-1 koord_y = y_maus/16-1 map(koord_x,koord_y)=0 EndIf ;flip Flip Until KeyDown(1) End spiel: Code: [AUSKLAPPEN] Graphics 1024,768,16,2 SetBuffer BackBuffer() Dim map(38,28) Global back=LoadImage("data/back2.png") Global beer=LoadImage("data/beer2.png") Global water=LoadImage("data/water.png") Global head=LoadImage("data/test.png") Global barrel=LoadImage("data/barrel.png") MaskImage beer,0,0,0 MaskImage barrel,255,255,255 Const Nord = 1 Const Ost = 2 Const Sued = 3 Const West = 4 Richtung = Ost ;Schablone für Teile Type TTeil Field x Field y End Type ;Fünf Körperteile zu beginn For i=0 To 4 Teil.TTeil = New TTeil Teil\x = head_x - 4 + i ;Damit die Schlange nach Westen gerichtet ist Teil\y = head_y Next dat_load$=Input$("Ladedatei: ") datei = ReadFile("data/"+dat_load$) For x = 0 To 37 For y = 0 To 27 map(x,y) = ReadByte(datei) Next Next CloseFile datei DrawImage head, 160,160 Repeat Cls fps2 = fps2 + 1 If fpstimer + 1000 < MilliSecs() Then fps = fps2:fps2 = 0:fpstimer = MilliSecs() End If Text 650,15,"FPS: "+fps ;spielumrandung zeichnen Rect 15,15,610,450,0 ;mapbackground zeichnen x=0 y=0 For i = 1 To 1064 Select map(x,y) Case 0 DrawBlock back, (x+1)*16,(y+1)*16 Case 1 DrawBlock back, (x+1)*16,(y+1)*16 Case 2 DrawBlock back, (x+1)*16,(y+1)*16 End Select If x < 37 Then x=x+1 Else x=0 y=y+1 EndIf Next ;mapitems zeichnen x=0 y=0 For i = 1 To 1064 Select map(x,y) Case 1 DrawImage water, x*16,y*16 Case 2 DrawImage beer, x*16,y*16 End Select If x < 37 Then x=x+1 Else x=0 y=y+1 EndIf Next ;bewegungen ;Norden? If KeyHit(200) Then If Richtung <> Sued Then Richtung = Nord EndIf EndIf ;Osten? If KeyHit(205) Then If Richtung <> West Then Richtung = Ost EndIf EndIf ;Süden? If KeyHit(208) Then If Richtung <> Nord Then Richtung = Sued EndIf EndIf ;Westen? If KeyHit(203) Then If Richtung <> Ost Richtung = West EndIf EndIf ;Zeit abfragen If MilliSecs() - letztebewegung > 75 Then ;Je weniger, desto schneller! letztebewegung = MilliSecs() ;Bewegung durchführen…. head_x = head_x - (Richtung=West) + (Richtung=Ost) head_y = head_y - (Richtung=Nord) + (Richtung=Sued) If head_x < 0 Then head_x = 39 If head_x > 39 Then head_x = 0 If head_y < 0 Then head_y = 29 If head_y > 29 Then head_y = 0 EndIf pos_x=head_x pos_y=head_y If map(pos_x,pos_y) = 1 Text 400,600,"Kollison Wasser!" EndIf If map(pos_x,pos_y) = 2 Text 400,600,"Kollison Bier!" EndIf ;Kopf zeichnen DrawImage head, head_x*16,head_y*16 ;flip Flip 0 ;programm beenden Until KeyDown(1) End im code des spiels sind noch einige sachen die derzeit nicht gebraucht werden. however... freu mich über eure meinungen zwecks optimierung etc. und ob der ansatz so überhaupt sinn macht. und nicht zu böse sein ![]() edit: http://runescape.mdo-net.de/map_editor.rar |
||
![]() |
Hagbard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm...also denke schon, dass es praktisch ist, denn besonders du kannst damit bequem neue Levels erstellen...daher *daumen hoch* und nutz das ^^ | ||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
und wenn man das ganze noch erweitert, wird es noch besser ^^
Es ist sowieso so, dass man für Levels immer Hilfsprogramme nimmt, wenn auch selbst programmiert, um alles schnell verarbeiten zu können |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group