problem mit tiles
Übersicht

captain kwirkbyBetreff: problem mit tiles |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo! Ich will einen "Sim-City Klon" machen(nicht so was kompliziertes, sondern erst mal um zu gucken wie man mit tiles umgeht usw.), aber wenn man bei aktiviertem Straßenbaumodus Klickt, dann kommt einfach kein stück Straße!
Code: [AUSKLAPPEN] Graphics 800,600,32,2 SeedRnd MilliSecs() Global mouse = CreateImage(32,32);Das "mausbild" Global empty = CreateImage(32,32);Um die maus "zurückzusetzen" SetBuffer BackBuffer() Global tileset1 = LoadAnimImage("tiles01.bmp",32,32,0,10) Global streetbutton = LoadAnimImage("streetbutton.bmp",50,50,0,2) Global street = LoadAnimImage ("streettile.bmp",32,32,0,6) Dim baumodi(1);Die Baumodi Global mx = MouseX()/32 Global my = MouseY()/32 MaskImage streetbutton,255,0,0 MaskImage tileset1,255,0,0 Dim nr(1); Die Frames(fuer alles) nr(0) = 1 ;Wegen Malfehler ;) Dim map(17,17) For y = 0 To 17 For x = 0 To 17 s = Rand(20) If s = 10 Then booley = Rand(0,3) Else booley = 0 End If map(x,y) = booley Next Next ;------------MAINLOOP---------------------------- While Not KeyHit(1) Cls DrawMap() mx = MouseX()/32 my = MouseY()/32 If ImagesOverlap(mouse,MouseX(),MouseY(),streetbutton,576,100) And MouseHit(1) Then If baumodi(0) = 1 Then baumodi(0) = 0 nr(0) = 1 mouse = empty Else baumodi(0) = 1 nr(0) = 0 End If End If If Baumodi(0) = 1 Then mouse = street If MouseHit(2) Then nr(1) = nr(1) + 1 If nr(1) = 6 Then nr(1) = 0 End If If MouseHit(1) Then mx = MouseX()/32 my = MouseY()/32 map(mx,my) = 4 End If End If Flip Wend ;-----------FUNCTIONS---------------------------- Function DrawMap() For y = 0 To 17 For x = 0 To 17 DrawImage tileset1,x*32,y*32,map(x,y) Next Next Color 128,128,128 Rect 576,100,50,300 DrawImage streetbutton,576,100,nr(0) DrawImage mouse,MouseX(),MouseY(),nr(1) End Function Könnt ihr mir da helfen? |
||
99 % aller Amokläufer essen Brot. Verbietet Brot!!! |
![]() |
robotx |
![]() Antworten mit Zitat ![]() |
---|---|---|
Speichere die MouseHit Abfragen vorher in einer Variablen und benutze dann diese.
Code: [AUSKLAPPEN] ...
;Hauptschleife mHit1 = MouseHit (1) If ImagesOverlap(mouse,MouseX(),MouseY(),streetbutton,576,100) And mHit1 Then .... .... Ebenso mit MouseHit (2) und bei allen anderen Stellen an denen MouseHit () genutzt wird. mfg robotx |
||
www.botbomb.robotzgames.de
www.robotzgames.de |
![]() |
theotheoderich |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Speichere die MouseHit Abfragen vorher in einer Variablen und benutze dann diese.
Völlig korrekt, das kann Wunder wirken. Ich bin daran auch anfangs verzweifelt, da ich immer die Maus direkt abgefragt habe. |
||
Gruß
TheoTheoderich -- The box label said, "Requires Windows XP or better.", so I bought an Amiga Computer. |
captain kwirkby |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke, jetzt klappt es eingentlich. Ich habe nur noch ein problem:
Code: [AUSKLAPPEN] If Baumodi(0) = 1 Then mouse = street If Mhit2 Then nr(1) = nr(1) + 1 If nr(1) = 6 Then nr(1) = 0 End If If Mhit1 Then mx = MouseX()/32 my = MouseY()/32 map(mx,my) = 4 End If End If Wenn ich jetzt auf den streetbutton klicke, meint er "Array index out of bounds" |
||
99 % aller Amokläufer essen Brot. Verbietet Brot!!! |
![]() |
theotheoderich |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du solltest Dir angewöhnen Zeilen in Abfragen/Schleifen einzurücken, dass macht die ganze Sache deutlich übersichtlicher.
"Array index out of bounds" .....wenn Du map(mx,my) schreibst und vorher z. B. Dim map(128,128) definiert hast und dann mx oder my >127 ist, dann kommt diese Meldung. Quasi wenn Du mit der Maus über den Kartenrand hinaus gehst. Kannst Du abfangen, wenn Du z. B. Global mapsize=128 definierst und dann Dim map(mapsize,mapsize). Vor map(mx,my) = 4 überprüfst Du ob mx und my >=0 und <mapsize sind. |
||
Gruß
TheoTheoderich -- The box label said, "Requires Windows XP or better.", so I bought an Amiga Computer. |
captain kwirkby |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke jetzt hats geklappt! ![]() |
||
99 % aller Amokläufer essen Brot. Verbietet Brot!!! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group