mapeditor

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2, 3  Weiter

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.

 

biegl

Betreff: mapeditor

BeitragFr, Sep 10, 2004 15:23
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo leute ich hab mir gerde einen kleinen map editor geschrieben

jetzt weis ich aber nicht was hier falsch ist denn wenn ich das prog starte
läd er mir das prog zeichnet aber von anfang an auf meine tile map
von 10*10 das tile in frame 2 und ich kann keine tiles drüber malen

Code: [AUSKLAPPEN]

Dim map (10,10)

Graphics 600,400,16

;load tielset
tileset = LoadAnimImage("tileset.bmp",32,32,0,2)
maus = LoadImage("maus.bmp")
Global x,y,mx,my,maox,mapy
Global tile

Repeat
SetBuffer BackBuffer()

If KeyDown(1) Then End
For x = 1 To 10
For y = 1 To 10
DrawImage tileset,x*32,y*32,map(x,y)
Next
Next

If KeyDown (2) Then tile = 0
If KeyDown (3) Then tile = 1

mx = MouseX()
my = MouseY()

If MouseDown(1) Then scroll()
map(mapx,mapy) = tile


If MouseDown(2) Then scroll
map(mapx,mapy) = 0


If KeyHit(31) Then save()
If KeyHit(38) Then load()

DrawImage maus,mx,my

Flip
Forever

Function scroll()
mapx = (mx)/32
mapy = (my)/32
End Function

Function save()
karte$ = WriteFile("map.dat")
For x = 1 To 10
For y = 1 To 10
WriteLine(karte$,tile)
Next
Next
CloseFile(karte$)
End Function

Function load()
karte$ = ReadFile("map.dat")
For x = 1 To 10
For y = 1 To 10
tile = ReadLine(karte$)
map(x,y) = ReadInt(karte$)
Next
Next
CloseFile(karte$)
End Function

rambo256

BeitragFr, Sep 10, 2004 15:32
Antworten mit Zitat
Benutzer-Profile anzeigen
maaa....
mach doch bitte mal das Code: [AUSKLAPPEN]
setbuffer backbuffer()

nach Code: [AUSKLAPPEN]
Graphics ...

sonst setzt er immer wieder den Backbuffer und dein Flip-befehl nützt dir dann gar nichts...
Probier es mal so aus.

Edit: Mir fällt gerade auf,das du dich teilweise bei den Globalen variablen auch öfters verschrieben hast! durchsuch deinen Code nochmal nach solchen Fehlern.
Asus F53z

Das Leben ist eine reine Konkatenation...
  • Zuletzt bearbeitet von rambo256 am Fr, Sep 10, 2004 15:35, insgesamt einmal bearbeitet

simi

BeitragFr, Sep 10, 2004 15:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich versteh zwar nicht ganz, was du meinst, aber ich versuche mal eine Antwort zu geben...

Bei Global steht maoX statt mapX. Das könnte schon der Fehler sein...

Jetzt wenn du die Map zeichnest, dann zeichnet es immer das Tile 0. Aber das Teil 0 sollte ja nichts sein, also musst du eine Abfrage machen (if Map(x,y) > 0 then Zeichnen)
Und so musst du auch die beim abspeichern auch zum aktuellen Teil 1 dxazuzählen....



Dim map (10,10)

Graphics 600,400,16

;load tielset
tileset = LoadAnimImage("tileset.bmp",32,32,0,2)
maus = LoadImage("maus.bmp")
Global x,y,mx,my,mapx,mapy
Global tile

Repeat
SetBuffer BackBuffer()

If KeyDown(1) Then End
For x = 1 To 10
For y = 1 To 10

if map(x,y) > 0 then
DrawImage tileset,x*32,y*32,map(x,y)-1
end if

Next
Next

If KeyDown (2) Then tile = 0
If KeyDown (3) Then tile = 1

mx = MouseX()
my = MouseY()

If MouseDown(1) Then
scroll()
map(mapx,mapy) = tile +1
end if

If MouseDown(2) Then
scroll()
map(mapx,mapy) = 0
end if


If KeyHit(31) Then save()
If KeyHit(38) Then load()

DrawImage maus,mx,my

Flip
Forever

Function scroll()
mapx = (mx)/32
mapy = (my)/32
End Function

Function save()
karte$ = WriteFile("map.dat")
For x = 1 To 10
For y = 1 To 10
WriteLine(karte$,tile)
Next
Next
CloseFile(karte$)
End Function

Function load()
karte$ = ReadFile("map.dat")
For x = 1 To 10
For y = 1 To 10
tile = ReadLine(karte$)
map(x,y) = ReadInt(karte$)
Next
Next
CloseFile(karte$)
End Function

cu simi

P.S: Warum kann ich keine [b] Tags in den [code] Tags machen???
 

Timo

BeitragFr, Sep 10, 2004 15:36
Antworten mit Zitat
Benutzer-Profile anzeigen
dürfte eigentlich nur der Rechtschreibfehler sein, was simi schon sagte...

Zitat:
P.S: Warum kann ich keine [b] Tags in den [code] Tags machen???


weil [b] bestandteil deines Codes sein könnte Wink

Hubsi

BeitragFr, Sep 10, 2004 15:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Code ist ein einziger Fehlerhaufen Wink Ich ergänze mal zu simi's Post:

- Die Speicher und Ladefunktion passen nicht zusammen
- Ein Handle ist ein Integer, kein String
- Den Buffer nicht in einer Schleife setzen (wie kommt man überhaupt auf sowas?)
- Warum zwei windige Zeilen in eine Function packen? Strg+C und Strg+V gibts auch noch Wink
- Warum WriteLine? Bytes sind sehr viel Speicherschonender.

Tja, und jetzt ran Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

biegl

BeitragFr, Sep 10, 2004 18:04
Antworten mit Zitat
Benutzer-Profile anzeigen
das war ein schlauberger der das tut geschrieben hat
ich hab daran ne ganze dtunde gesessen bis ich das tut durch hatte und verstanden hatte
das stammt robsite.de
 

biegl

BeitragFr, Sep 10, 2004 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich habs jetzt mal verbessert und es funktinoirt auch nur wenn ich eine map erstelle und sie dann laden will
kommt folgende meldung

image fram out of range

und hier soll der fehler liegen?
Code: [AUSKLAPPEN]

DrawImage tileset,x*32,y*32,map(x,y)-1
 

David

BeitragFr, Sep 10, 2004 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Lad doch mal das Projekt irgendwo hoch, vielleicht findet sich jemand, der es für dich debuggt, aber so...
Oder poste zumindest deinen aktuellen Code!

grüße
http://bl4ckd0g.funpic.de
 

biegl

BeitragFr, Sep 10, 2004 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
so nu abba

http://biegl.homeftp.net/map.rar
 

David

BeitragFr, Sep 10, 2004 19:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Ja, das Tileset wär halt noch ganz sinnig, sonst tauchen an allen Ecken und Enden schon Fehler auf!

grüße
http://bl4ckd0g.funpic.de
 

David

BeitragFr, Sep 10, 2004 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Das Problem is eigendlich ganz einfach!
Sobald du an eine Position klickst, die größer 352 is (352 / 11= 32) bekommst du den out of range Fehler, da dein Array nur 11x11 Fehler groß ist.

An deiner stelle würd ich sowiso den gesammten Code nochmals überdenken, das ist ja grauenhaft! Shocked
Sorry, aber das musst jetzt echt mal sein...

Schon wie du auf diese Idee gekommen bist:

Code: [AUSKLAPPEN]

Function scroll()
mapx = (mx)/32
mapy = (my)/32
End Function


Die Speicherfunktion schreit nach überarbeitung und ganz nebenbei hast du ein CLS vergessen, was zu sehr schmierigen Bildern führen kann!

grüße
http://bl4ckd0g.funpic.de
 

biegl

BeitragFr, Sep 10, 2004 19:38
Antworten mit Zitat
Benutzer-Profile anzeigen
war das tutorial von robsite
...

dann sollten die mal ihre tuts überprüfen man ich bin blutiger anfänger wie soll ich da was lernen wenn dei tuts völliger quatsch sind..

wie habt ihr euch bb beigebracht ?
 

David

BeitragFr, Sep 10, 2004 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Ich hab mir die Onlinehilfe von BlitzBasic angeschaut und ein paar der Beispielsprojekte.
So kompliziert ist BlitzBasic ja auch wieder nicht! Smile
Ich wollt ja nichts gegen dich als Anfänger gesagt haben, nur ist der Code wirklich übel und wenn er von einem Tutorial stammt... Dann gute Nacht! :S

grüße
http://bl4ckd0g.funpic.de

DA

BeitragFr, Sep 10, 2004 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Mhh, dass problem hatte ich auch nur dass ich dat scrolling nicht hingekriegt habe.
Ich könnte dir jetzt natürlich meinen vertigen Mapeditor geben aber dann werde ich wieder angemozt weil ich dir zu viel geholfen habe.

Ich kann dir nur mit einer sache Helfen, und dass ist anscheinend mit garnichts! Shocked

Thx
DarkAngel
Deutscher Blitz Basic Chat
 

David

BeitragFr, Sep 10, 2004 20:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Hauptsache gespammt was?

grüße
http://bl4ckd0g.funpic.de
 

Blitzkrieg Bop

BeitragFr, Sep 10, 2004 22:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Man DA, wenn du nicht helfen kannst/willst, sei einfach ruhig und schrieb hier net rein.
@biegl: Wolltest du nicht deinen kompletten Editor posten?!

*Edit: Ich sehe gerade, du hattest deinen Post schon editiert. Okay.
~ Hey Ho Let's Go ~
 

David

BeitragSa, Sep 11, 2004 8:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

@biegl: Hast du nun eigendlich verstanden warum es den "Out of range" Fehler gab?
Es wäre nämlich schon sinnig das zu verstehen, falls du deinen Editor wirklich mal zuende bringen willst!

grüße
http://bl4ckd0g.funpic.de
 

biegl

BeitragSa, Sep 11, 2004 10:14
Antworten mit Zitat
Benutzer-Profile anzeigen
jaja jab ich schon

weil ich meinen map nur 11*11 felder groß ist und wenn ich aus diesem feld rauskomme gibts es den fehler aber auch wenn ich speichere und es laden will wieso?

gibt es irgendwo im web tutorials die auch gut sind?

ps DIE ONLINE HILFE HAB ICH DURCH

BladeRunner

Moderator

BeitragSa, Sep 11, 2004 10:20
Antworten mit Zitat
Benutzer-Profile anzeigen
biegl hat Folgendes geschrieben:

ps DIE ONLINE HILFE HAB ICH DURCH


Wenn dem so ist und du ja alles verstanden hast wirst du dieses kleine Problemchen ohne weiteres mit etwas nachdenken in den Griff bekommen.
Noch dazu da:
biegl hat Folgendes geschrieben:
ps das spiel ist bereits zu 30 prozent fertig
(siehe https://www.blitzforum.de/viewtopic.php?t=5644 ).
Wer so ein Crack ist innerhalb kürzester Zeit 30 % einer MMORPG-Engine zu Schreiben wird doch mit einer Lade und SpeicherFunktion keine Probleme haben...
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

biegl

BeitragSa, Sep 11, 2004 10:26
Antworten mit Zitat
Benutzer-Profile anzeigen
wie oft denn noch
ich hab das project ertmal eingefroren.

Gehe zu Seite 1, 2, 3  Weiter

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group