Probleme mit Banks [gelößt]
Übersicht

zimtstern#3Betreff: Probleme mit Banks [gelößt] |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
zur zeit experimentiere ich mit banks, ist es normal das die nicht standartmäßig 'leer' sind bzw. etwas enthalten? Bei dem unten angeführten code habe ich nämlich ab und zu werte in der Tabelle stehen obwohl diese leer sein müsste! ...oder ![]() Code: [AUSKLAPPEN] Global map_breite,map_hoehe,tile_breite,tile_hoehe,map_bank
Graphics 800,600,0,0 SetBuffer BackBuffer() tile_breite = 32 tile_hoehe = 24 map_breite = 10 map_hoehe = 10 CreateMap(map_breite,map_hoehe,1) If map_breite <> 0 For i = 0 To map_breite-1 For ii = 0 To map_hoehe-1 Rect i*tile_breite,ii*tile_hoehe,tile_breite,tile_hoehe,0 Next Next For i = 0 To map_breite-1 For ii = 0 To map_hoehe-1 Text i*tile_breite,ii*tile_hoehe,Str$(ReadMap_TileData(i,ii,0)) Next Next End If Flip Delay 3000 Function ReadMap_TileData(x,y,z) tiledata = PeekByte (map_bank,(((x+(y-1)*map_breite)-1)*2)+z) Return tiledata End Function Function CreateMap(map_breite,map_hoehe,layer_anz) map_bank = CreateBank (map_breite*map_hoehe*2*layer_anz) End Function |
||
- Zuletzt bearbeitet von zimtstern#3 am Mi, Jul 21, 2004 13:28, insgesamt 2-mal bearbeitet
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Der belegte Speicherbereich wird eben nicht automatisch gelöscht, deshalb ist es gut möglich dass da manchmal noch was steht. | ||
zimtstern#3 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das müsste dann ja so funktionieren, bei mir lassen sich die ersten 11 einträge aber nicht verändern. Was mache ich falsch?
Code: [AUSKLAPPEN] Global map_breite,map_hoehe,tile_breite,tile_hoehe,map_bank
Graphics 800,600,0,0 SetBuffer BackBuffer() tile_breite = 32 tile_hoehe = 24 map_breite = 10 map_hoehe = 10 CreateMap(map_breite,map_hoehe,1) clearmap(map_bank) If map_breite <> 0 For i = 0 To map_breite-1 For ii = 0 To map_hoehe-1 Rect i*tile_breite,ii*tile_hoehe,tile_breite,tile_hoehe,0 Next Next For i = 0 To map_breite-1 For ii = 0 To map_hoehe-1 Text i*tile_breite,ii*tile_hoehe,Str$(ReadMap_TileData(i,ii,0)) Next Next End If Flip Delay 3000 Function ReadMap_TileData(x,y,z) tiledata = PeekByte (map_bank,(((x+(y-1)*map_breite)-1)*2)+z) Return tiledata End Function Function CreateMap(map_breite,map_hoehe,layer_anz) map_bank = CreateBank (map_breite*map_hoehe*2*layer_anz) End Function Function ClearMap(map_bank) size = BankSize (map_bank) For i = 0 To size-1 PokeByte map_bank,i,33 X = PeekByte (map_bank,i) Next End Function |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
das ist unmöglich - die neu erstellten banks sind bei mir immer leer gewesen... Das ist typisch für Basic | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
zimtstern#3 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab den Fehler gefunden:
Code: [AUSKLAPPEN] For i = 0 To map_breite-1
For ii = 0 To map_hoehe-1 Text i*tile_breite,ii*tile_hoehe,Str$(ReadMap_TileData(i,ii,0)) Next Next Der Fehler besteht darin das ich bei null anfange aber meine formeln in der funktion ReadMap_Tiledata() erst ab 1 funktionieren. Wenn man mal den aufruf der Funktion mit 0 durchrechnet ergibt sich: Code: [AUSKLAPPEN] tiledata = PeekByte (map_bank,(((x+(y-1)*map_breite)-1)*2)+z) für x,y,z = 0 map_breite = 3 => (((x+(y-1)*map_breite)-1)*2)+z => (((0+(0-1)*3)-1)*2)+0 => (((0+(-1)*3)-1)*2)+0 => ((-1*3)-1)*2)+0 => ((-3)-1)*2)+0 => ((-4)*2)+0 => -8+0 => -8 => tiledata = PeekByte (map_bank,-8) Erstaunlich das es keine Fehlermeldung gibt |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
hast du BB+ - dort sind ungültige größen möglich (funzt dann wie ein pointer) | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group