warum Fehlermeldung ?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Freeman

Betreff: warum Fehlermeldung ?

BeitragDo, März 31, 2005 1:40
Antworten mit Zitat
Benutzer-Profile anzeigen
hi

ich beschäftige mich jetz seit ein paar mehr tagen mit dem thema mapedi, sieht auch schon schön aus und muss jetzt "nur" noch das malen einbauen, allerdings bekomme ich da eine fehlermeldungen nach ein paar ins nichts klicke. Hier erstmal der code
Code: [AUSKLAPPEN]

Graphics 800,600,0
Global mx,my,map[999,999],x,y,tile ,scrollx,scrolly,mx2,my2
tile=LoadAnimImage("stadt.png",16,16,0,30*30)

create_map()

While Not KeyDown(key_escape)
Cls
mx=MouseX()
my=MouseY()
mx2=mx/16-scrollx/16
my2=my/16-scrolly/16
malen()

If KeyDown(key_up) Then scrolly=scrolly - 4
If KeyDown(key_down) Then scrolly=scrolly + 4
If KeyDown(key_right) Then scrollx = scrollx + 4
If KeyDown(key_left) Then scrollx = scrollx - 4

Flip
Wend


Function create_map()
For x=0 To 20
For y=0 To 20
map[x,y]=0
Next ; Next
End Function


Function malen()
For x=0 To 20
For y=0 To 20
DrawImage tile,(x*16)+(scrollx),(y*16)+(scrolly),map[x,y]
Next ; Next

If MouseDown(1)
map[mx2,my2]=2
EndIf
End Function


malen und so geht alles, allerdings wenn man ein bischen in dem äußeren(das schwarze Wink ) rumdrückt mit der maus bekomm ich immer die meldung " unhandled Exception: Attemp to index array element beyond array length" - also das ein wert nicht im bereich eines arrays liegt. dann wird mir immer die Zeile angezeigt "map[mx2,my2]=2" . kann mir wer sagen woran es jetz liegt, und was ich ändern müsste.
Achso, nich wundern der code is nur nen bsp-code

FrEeMaN
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28
 

Dreamora

BeitragDo, März 31, 2005 2:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Was du ändern musst:

Es muss eine Abfrage rein, die prüft ob der Abfrage wert überhaupt im erlaubten Bereich ist. Ich vermute in diesem Fall ist er <0 weil du "links drüber raus bist", denn >999 würde ewig dauern Wink
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

David

BeitragDo, März 31, 2005 7:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Ich weis nicht, ob es eine besonders gute Idee ist, hierfür Dim Felder zu benutzen.
Deine Möglichkeiten die Levels auf- und auszubauen sind damit arg beschränkt.
Auserdem verschwendest du u.U. viel Speicherplatz...

grüße

Freeman

BeitragDo, März 31, 2005 10:20
Antworten mit Zitat
Benutzer-Profile anzeigen
wie sollte ich es denn sonst machen?

edit: ich habe jetzt noch eine Abfrage für das malen reingebastelt, es klappt.
danke

FrEeMaN
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28
 

David

BeitragDo, März 31, 2005 10:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Gibt zwar manche die sagen Types wären für solche Aktionen zu langsam, aber ich bin trotzdem dafür... Wink

grüße

Hubsi

BeitragDo, März 31, 2005 10:36
Antworten mit Zitat
Benutzer-Profile anzeigen
@David: Es ist eine gängige, schnelle und bewährte Methode für Maps ein Array zu verwenden. Zudem kannst Du auf eine Dim-Map eine recht einfache aber rasend schnelle Kollisionsprüfung anwenden. Bin aber immer für neue Techniken offen Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

David

BeitragDo, März 31, 2005 11:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Ja ist schon gängig... Aber ich finde mit Types hat man u.U. tatsächlich mehr Vorteile. Man kann Tiles recht leicht Eigenschaften zuweisen und muß beim Speichern der Daten nicht für jede leere Stelle einen Wert angeben.
Außerdem können die Leveldimensionen ganz leicht geändert werden...
Aber gängig scheinen tatsächlich Dim-Felder zu sein.

grüße
 

Hot-Bit

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragDo, März 31, 2005 12:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi.

Ich verwende für Maps immer Arrays.

Es müßte schon was außergewöhnliches sein, zB. eine Map, welche größer oder kleiner werden kann. Dann wären Types sinnvoller.
Mir fällt aber spontan nichts dergleichen ein.

Toni
... ..... .i.. ...

***
Sieger des BB-Gameboy-Contest 2004
Sieger des Blitzbaster 2D-Minigolf-Contest 2005
***
 

D²O

BeitragDo, März 31, 2005 12:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Question
man kann doch beim Mapladen festtellen wie gross sie ist und dem entsprechend das Array neu Dimensionieren.
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;
 

Hot-Bit

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragDo, März 31, 2005 12:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hoi.

Ist klar.
Nur muß ich dann die ganze Map neu laden.
So kann ich sie einfach nur verändern.

Kommt mir einfacher vor.

Toni
... ..... .i.. ...

***
Sieger des BB-Gameboy-Contest 2004
Sieger des Blitzbaster 2D-Minigolf-Contest 2005
***

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group