Problem mit Tilemap
Übersicht

BassmasterBetreff: Problem mit Tilemap |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo ich hab gerade mal in meine Tilemap ein Bild mehr reingebaut und die Tilemap etwas vergrößert.
Aber wenn ich das Programm Compiliere bekomme ich die Meldung "Not enough Frames in Bitmap" Aber meiner meinung nach habe ich genug Frames Hier mal die Bitmap: http://img-up.net/?up=tileset_tejXMddQi.jpg Höhe: 59 Breite: 330 Bei mir im Ordner auf dem PC ist es als png abgespeichert. Und hier ist der Source Code dazu: Code: [AUSKLAPPEN] Graphics 1024,648,32,0 Global Tileset = LoadAnimImage("tileset_test.png",59,59,0,6) Global char = LoadImage ("char.png") ;-------------------------------- Global ppx = 10*59 ;X-Position des Charackters Global ppy = 7*59 ;Y-Position des Charackters Global py = 7 ;Kollisions X-Position des Charackters Global px = 10 ;Kollisions Y-Position des Charackters Global scrolly ;Die Variable fr die ScrollY-Position Global scrollx ;Die Variable fr die ScrollX-Position ;-------------------------------- ; 0 = wiese ; 1 = sand ; 2 = hebel ; 3 = wasser ; 4 = tür ; 5 = feuer ; 6 = baum Dim map(21,21) Data 5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,3,3,0,0,0,0,0,0,0,0,3,3,0,0,0,0,5 Data 5,0,0,0,3,3,0,0,0,0,0,0,0,0,3,3,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5 For x = 0 To 21 For y = 0 To 21 Read map(x,y) Next Next Repeat SetBuffer BackBuffer() Cls For x = 0 To 21 For y = 0 To 21 DrawBlock tileset,x*59-scrollx,y*59-scrolly,map(x,y) ;map malen Next Next DrawImage char,ppx-scrollx,ppy-scrolly ;figur male ;----Bewegungsroutinen---------------------------------------------------------------------------------- Select move ;links Case 1 ;Spielerposition ndern scrollx = scrollx - 2 ppx = ppx - 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter=counter+1 If counter = 16 Then px = px - 1 counter = 0 move = 0 EndIf ;Rechts Case 2 ;Spielerposition ndern scrollx = scrollx + 2 ppx = ppx + 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter = counter+1 If counter = 16 Then px = px + 1 counter = 0 move = 0 EndIf ;runter Case 3 ;Spielerposition ndern scrolly = scrolly + 2 ppy = ppy + 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter = counter+1 If counter = 16 Then py = py + 1 counter = 0 move = 0 EndIf ;rauf Case 4 ;Spielerposition ndern scrolly = scrolly - 2 ppy = ppy - 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter = counter+1 If counter = 16 Then py = py - 1 counter = 0 move = 0 EndIf End Select ;Cursor Rechts If KeyDown(205) Then ;Kollision checken, wie ihr es schon kennt If map(px+1,py) < 3 Then ;der nchste Tastatur-eingabe-impuls wird mglich sobald die vorige Bewegung abgeschlossen ist ;das heit in der Zeit wo keine Tastatur-eingabe erfolgen kann wird zur Zeit gescrollt If move=0 Then ;die Scrollroutine move=2 ( Case 2 ) wird aufgerufen move = 2 End If End If End If ;Cursor Links If KeyDown(203) Then ;Kollision checken, wie ihr es schon kennt If map(px-1,py) < 3 Then ;der nchste Tastatur-eingabe-impuls wird mglich sobald die vorige Bewegung abgeschlossen ist ;das heit in der Zeit wo keine Tastatur-eingabe erfolgen kann wird zur Zeit gescrollt If move=0 Then ;die Scrollroutine move=1 ( Case 1 ) wird aufgerufen move = 1 End If End If End If ;runter key If KeyDown(208) Then If map(px,py+1) < 3 Then If move = 0 Then move = 3 End If End If End If ;rauf key If KeyDown(200) Then If map(px,py-1) < 3 Then If move = 0 Then move = 4 End If End If End If ;---Trigger Point ------------------------------- If KeyHit(57) Then ;und die spielerposition auf den hebel-tile befindet If map(px,py) = 2 Then ;dann wird die gesamte karte eingelesen und alle tür-tiles in graß-tiles ;umgewandelt For y = 0 To 21 For x = 0 To 21 If map(x,y) = 4 Then map(x,y) = 0 End If Next Next End If End If Flip Forever |
||
AMD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
die breite der einzelnen Bilder stimmt bei dir ned. wenn ein bild 59 sein soll und es 7 bilder sind dann kommt man auf 413 Pixel und ned auf 330. Also stimmt die Breite eines Bildes in Pixel ned... | ||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
Bassmaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So zeigt es mir paint an
http://img-up.net/?up=tilemapKhfdQ6z1.JPG |
||
AMD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich meine die einzelne Bild länge. Du hast ja da 7 verschiedene einzelne Bilder und davon musst du die Höhe und die Breite angeben von "einem" solchen Bild und die is bei dir falsch die ist nicht 59!!!
kapiert? |
||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
Bassmaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich versuche gerade eine map zu erzeugen mit einem array von 25,25
Aber da kommt die tolle Fehlermeldung Out of Data. Aber das Array ist richtig. -.- Code: [AUSKLAPPEN] Graphics 640,480,32,0 Global Tileset = LoadAnimImage("tileset.bmp",32,32,0,6) Global char = LoadImage ("char.png") ;-------------------------------- Global ppx = 10*32 ;X-Position des Charackters Global ppy = 7*32 ;Y-Position des Charackters Global py = 7 ;Kollisions X-Position des Charackters Global px = 10 ;Kollisions Y-Position des Charackters Global scrolly ;Die Variable fr die ScrollY-Position Global scrollx ;Die Variable fr die ScrollX-Position ;-------------------------------- ; 0 = wiese ; 1 = sand ; 2 = hebel ; 3 = wasser ; 4 = tür ; 5 = feuer ; 6 = baum Dim map(25,25) Data 5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,3,3,0,0,0,0,0,0,0,0,3,3,0,0,0,0,5 Data 5,0,0,0,3,3,0,0,0,0,0,0,0,0,3,3,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5 For x = 0 To 25 For y = 0 To 25 Read map(x,y) Next Next Repeat SetBuffer BackBuffer() Cls For x = 0 To 25 For y = 0 To 25 DrawBlock tileset,x*32-scrollx,y*32-scrolly,map(x,y) ;map malen Next Next DrawImage char,ppx-scrollx,ppy-scrolly ;figur male ;----Bewegungsroutinen---------------------------------------------------------------------------------- Select move ;links Case 1 ;Spielerposition ndern scrollx = scrollx - 2 ppx = ppx - 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter=counter+1 If counter = 16 Then px = px - 1 counter = 0 move = 0 EndIf ;Rechts Case 2 ;Spielerposition ndern scrollx = scrollx + 2 ppx = ppx + 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter = counter+1 If counter = 16 Then px = px + 1 counter = 0 move = 0 EndIf ;runter Case 3 ;Spielerposition ndern scrolly = scrolly + 2 ppy = ppy + 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter = counter+1 If counter = 16 Then py = py + 1 counter = 0 move = 0 EndIf ;rauf Case 4 ;Spielerposition ndern scrolly = scrolly - 2 ppy = ppy - 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter = counter+1 If counter = 16 Then py = py - 1 counter = 0 move = 0 EndIf End Select ;Cursor Rechts If KeyDown(205) Then ;Kollision checken, wie ihr es schon kennt If map(px+1,py) < 3 Then ;der nchste Tastatur-eingabe-impuls wird mglich sobald die vorige Bewegung abgeschlossen ist ;das heit in der Zeit wo keine Tastatur-eingabe erfolgen kann wird zur Zeit gescrollt If move=0 Then ;die Scrollroutine move=2 ( Case 2 ) wird aufgerufen move = 2 End If End If End If ;Cursor Links If KeyDown(203) Then ;Kollision checken, wie ihr es schon kennt If map(px-1,py) < 3 Then ;der nchste Tastatur-eingabe-impuls wird mglich sobald die vorige Bewegung abgeschlossen ist ;das heit in der Zeit wo keine Tastatur-eingabe erfolgen kann wird zur Zeit gescrollt If move=0 Then ;die Scrollroutine move=1 ( Case 1 ) wird aufgerufen move = 1 End If End If End If ;runter key If KeyDown(208) Then If map(px,py+1) < 3 Then If move = 0 Then move = 3 End If End If End If ;rauf key If KeyDown(200) Then If map(px,py-1) < 3 Then If move = 0 Then move = 4 End If End If End If ;---Trigger Point ------------------------------- If KeyHit(57) Then ;und die spielerposition auf den hebel-tile befindet If map(px,py) = 2 Then ;dann wird die gesamte karte eingelesen und alle tür-tiles in graß-tiles ;umgewandelt For y = 0 To 25 For x = 0 To 25 If map(x,y) = 4 Then map(x,y) = 0 End If Next Next End If End If Flip Forever |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dein Array ist auch richtig, aber deine Fehlermeldung ist ''Out of Data'', und mal durchgezählt. Ja, du hast zu wenige Datawerte. Zwar stimmen die 26 Zeilen überein, aber nicht die Anzahl Spalten. Du hast 21 Spalten, liest aber 26 aus... | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Bassmaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die Fehlermeldung mit dem out of data ist jezt weg :>
Aber wie das ja so ist kommt dann wieder eine neue -.- Array Index out of bounds Dieses Programm macht mich noch WAHNSINNING ![]() ![]() Code: [AUSKLAPPEN] Graphics 640,480,32,0 Global Tileset = LoadAnimImage("tileset.png",32,32,0,6) Global char = LoadImage ("char.png") ;----------------------------------- Global ppx = 10*32 ;X-Position des Charackters Global ppy = 7*32 ;Y-Position des Charackters Global py = 7 ;Kollisions X-Position des Charackters Global px = 10 ;Kollisions Y-Position des Charackters Global scrolly ;Die Variable fr die ScrollY-Position Global scrollx ;Die Variable fr die ScrollX-Position ;-------------------------------- ; 0 = wiese ; 1 = sand ; 2 = hebel ; 3 = wasser ; 4 = tür ; 5 = feuer ; 6 = baum Dim map(25,25) Data 5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,3,3,0,0,0,0,0,0,0,0,3,3,0,0,0,0,5 Data 5,0,0,0,3,3,0,0,0,0,0,0,0,0,3,3,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5 Data 5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5,5 For x = 0 To 26 For y = 0 To 26 Read map(x,y) Next Next Repeat SetBuffer BackBuffer() Cls For x = 0 To 26 For y = 0 To 26 DrawBlock tileset,x*32-scrollx,y*32-scrolly,map(x,y) ;map malen Next Next DrawImage char,ppx-scrollx,ppy-scrolly ;figur male ;----Bewegungsroutinen---------------------------------------------------------------------------------- Select move ;links Case 1 ;Spielerposition ndern scrollx = scrollx - 2 ppx = ppx - 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter=counter+1 If counter = 16 Then px = px - 1 counter = 0 move = 0 EndIf ;Rechts Case 2 ;Spielerposition ndern scrollx = scrollx + 2 ppx = ppx + 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter = counter+1 If counter = 16 Then px = px + 1 counter = 0 move = 0 EndIf ;runter Case 3 ;Spielerposition ndern scrolly = scrolly + 2 ppy = ppy + 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter = counter+1 If counter = 16 Then py = py + 1 counter = 0 move = 0 EndIf ;rauf Case 4 ;Spielerposition ndern scrolly = scrolly - 2 ppy = ppy - 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter = counter+1 If counter = 16 Then py = py - 1 counter = 0 move = 0 EndIf End Select ;Cursor Rechts If KeyDown(205) Then ;Kollision checken, wie ihr es schon kennt If map(px+1,py) < 3 Then ;der nchste Tastatur-eingabe-impuls wird mglich sobald die vorige Bewegung abgeschlossen ist ;das heit in der Zeit wo keine Tastatur-eingabe erfolgen kann wird zur Zeit gescrollt If move=0 Then ;die Scrollroutine move=2 ( Case 2 ) wird aufgerufen move = 2 End If End If End If ;Cursor Links If KeyDown(203) Then ;Kollision checken, wie ihr es schon kennt If map(px-1,py) < 3 Then ;der nchste Tastatur-eingabe-impuls wird mglich sobald die vorige Bewegung abgeschlossen ist ;das heit in der Zeit wo keine Tastatur-eingabe erfolgen kann wird zur Zeit gescrollt If move=0 Then ;die Scrollroutine move=1 ( Case 1 ) wird aufgerufen move = 1 End If End If End If ;runter key If KeyDown(208) Then If map(px,py+1) < 3 Then If move = 0 Then move = 3 End If End If End If ;rauf key If KeyDown(200) Then If map(px,py-1) < 3 Then If move = 0 Then move = 4 End If End If End If ;---Trigger Point ------------------------------- If KeyHit(57) Then ;und die spielerposition auf den hebel-tile befindet If map(px,py) = 2 Then ;dann wird die gesamte karte eingelesen und alle tür-tiles in graß-tiles ;umgewandelt For y = 0 To 26 For x = 0 To 26 If map(x,y) = 4 Then map(x,y) = 0 End If Next Next End If End If Flip Forever |
||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du hast keine 27 Felder im Array. 0 zu 26 = 27. Das Array hat 26 Felder. | ||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich glaube, du machst uns mehr wahnsinnig als das Programm dich. Meine Frage nun: Hast du überhaupt verstanden, was ich vorher geschrieben habe? --> NEIN, hast du nicht.
Du hast zu wenig Spalten in deinen Data-Zeilen! Das heisst: Du musst mehr Spalten da rein machen! Also mehr Zahlen hinter dem Kommata. Die erste Data-Zeile müsste also in etwa so lauten: Code: [AUSKLAPPEN] Data 5,5,5,5,5, 5,5,4,5,5, 5,5,5,5,5, 5,5,5,5,5, 5,5,5,5,5, 5
Damit es besser lesbar ist, habe ich jede fünfte Zahl ein Leerzeichen rein gemacht. Und zwar wie du sehen kannst, hast du nun 26 Spalten, da du dein Array von 0 bis 25 (=26 Werte) ansprichst. Alternativ kannst du auch einfach nur weniger aufzählen. Also von 0 bis 20, was auch gehen würde. Und deine Änderungen... Code: [AUSKLAPPEN] For x = 0 To 26
For y = 0 To 26 ... ...solltest du schnell wieder rückgängig machen. Wenn du das alles gemacht hast und trotzdem noch Fehler auftretten, dann sag uns die Fehlermeldung und die Zeile, wo der Fehler auftritt. Denn so wird sich kaum einer hier finden, der extra dein Code kopiert, sich Dummygrafiken zusammensucht und dann auf Fehleranalyse geht. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Bassmaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jetzt gehts endlich THX THX THX
wieso bin ich da net selber drauf gekommen ![]() So ich hab ein neues Tilemap Problem -.- Also meine Tilemap ist 50 Breit 50 Hoch und ich habe 7 Tiles und immer wenn ich den Source Code compiliere meint der Compiler Not eough Frames in Bitmap aber da sind genug Frames drin. Hier ist ein das Bild: http://img-up.net/?up=testtileX0OZN.PNG Und hier ist der Source Code Code: [AUSKLAPPEN] Graphics 640,480,32,0 Global Tileset = LoadAnimImage("tileset.png" ,50,50,0,7) Global char = LoadImage ("char.png") ;----------------------------------- Global ppx = 10*50 ;X-Position des Charackters Global ppy = 7*50 ;Y-Position des Charackters Global py = 7 ;Kollisions X-Position des Charackters Global px = 10 ;Kollisions Y-Position des Charackters Global scrolly ;Die Variable fr die ScrollY-Position Global scrollx ;Die Variable fr die ScrollX-Position ;-------------------------------- ; 0 = wiese ; 1 = sand ; 2 = hebel ; 3 = wasser ; 4 = tür ; 5 = feuer ; 6 = baum Dim map(25,25) ;26 nach rechts ;26 nach unten Data 5,5,5,5,5, 5,5,5,5,5, 5,5,5,5,5, 5,5,5,5,5, 5,5,5,5,5, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,5,5,5,5, 5,5,5,5,5, 5,5,4,5,5, 5,5,5,5,5, 5,5,5,5,5, 5 Data 5,0,0,0,0, 0,0,2,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 5 Data 5,5,5,5,5, 5,5,5,5,5, 5,5,5,5,5, 5,5,5,5,5, 5,5,5,5,5, 5 For x = 0 To 25 For y = 0 To 25 Read map(x,y) Next Next Repeat SetBuffer BackBuffer() Cls For x = 0 To 25 For y = 0 To 25 DrawBlock tileset,x*50-scrollx,y*50-scrolly,map(x,y) ;map malen Next Next DrawImage char,ppx-scrollx,ppy-scrolly ;figur male ;----Bewegungsroutinen---------------------------------------------------------------------------------- Select move ;links Case 1 ;Spielerposition ndern scrollx = scrollx - 2 ppx = ppx - 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter=counter+1 If counter = 16 Then px = px - 1 counter = 0 move = 0 EndIf ;Rechts Case 2 ;Spielerposition ndern scrollx = scrollx + 2 ppx = ppx + 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter = counter+1 If counter = 16 Then px = px + 1 counter = 0 move = 0 EndIf ;runter Case 3 ;Spielerposition ndern scrolly = scrolly + 2 ppy = ppy + 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter = counter+1 If counter = 16 Then py = py + 1 counter = 0 move = 0 EndIf ;rauf Case 4 ;Spielerposition ndern scrolly = scrolly - 2 ppy = ppy - 2 ;Variable, die zhlt wie weit der Spieler bereits bewet wurde counter = counter+1 If counter = 16 Then py = py - 1 counter = 0 move = 0 EndIf End Select ;Cursor Rechts If KeyDown(205) Then ;Kollision checken, wie ihr es schon kennt If map(px+1,py) < 3 Then ;der nchste Tastatur-eingabe-impuls wird mglich sobald die vorige Bewegung abgeschlossen ist ;das heit in der Zeit wo keine Tastatur-eingabe erfolgen kann wird zur Zeit gescrollt If move=0 Then ;die Scrollroutine move=2 ( Case 2 ) wird aufgerufen move = 2 End If End If End If ;Cursor Links If KeyDown(203) Then ;Kollision checken, wie ihr es schon kennt If map(px-1,py) < 3 Then ;der nchste Tastatur-eingabe-impuls wird mglich sobald die vorige Bewegung abgeschlossen ist ;das heit in der Zeit wo keine Tastatur-eingabe erfolgen kann wird zur Zeit gescrollt If move=0 Then ;die Scrollroutine move=1 ( Case 1 ) wird aufgerufen move = 1 End If End If End If ;runter key If KeyDown(208) Then If map(px,py+1) < 3 Then If move = 0 Then move = 3 End If End If End If ;rauf key If KeyDown(200) Then If map(px,py-1) < 3 Then If move = 0 Then move = 4 End If End If End If ;---Trigger Point ------------------------------- If KeyHit(57) Then ;und die spielerposition auf den hebel-tile befindet If map(px,py) = 2 Then ;dann wird die gesamte karte eingelesen und alle tür-tiles in graß-tiles ;umgewandelt For y = 0 To 25 For x = 0 To 25 If map(x,y) = 4 Then map(x,y) = 0 End If Next Next End If End If Flip Forever |
||
Mistery_ |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bist du dir ganz Sicher das auch alle Bilder gleich groß sind ? | ||
Bassmaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja bin ich mir -.-
Weiss den keiner wie das geht ? ![]() Wtf wieso steht das hier jetzt zweimal. sry das firmen internet laggt gerade voll rum hab da wohl aussversehen 2 mal geklickt ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group