Die Sprites, ich bekomme momentan zwischen Musik und Charset 32 Blöcke unter. 8 davon gehen für die Spielfiguren drauf: Animation aus 2 Sprites, das ganze gespiegelt, und für den 2. Spieler dasselbe nochmal.
Ganz generell würde ich bei einem Grafik-Großprojekt wie einem Spiel die Musik nicht unbedingt in der selben VIC-Bank parken wie die Sprites, um Grafik-Platz zu sparen. Natürlich kann man auch hard-coded/pixeled Sprite-Daten aus anderen VIC-Bänken rüberschaufeln, aber unnötig kompliziert. Außerdem bieten sich die Bänke $C000 und $4000 für Grafik eher an als die anderen beiden, wo aus VIC-Sicht das Character-ROM im Weg steht (so dass man gerade dort, genauer: bei $1000/$9000, wiederum ganz gut Musik ablegen kann, ohne potenziellen Grafik-Platz zu vergeuden).
Und evtl. lohnt sich, Spiegelungen zu generieren statt hard-pixeled/coded abzulegen. Gab hier im Forum mal einen interessanten Fred dazu, den ich mal wieder nicht finde. Den Source habe ich aber noch, frag mich mal, von wem der ist, ich glaube(!) von Spider-J, vielleicht aber auch von mir oder jemand anderem. <-- Edit: alles Käse, war aus Lemon:
http://www.lemon64.com/forum/v…d33a3017feb511e34065fda57
Egal, vielleicht hilft es Dir ja
- !to "sprite_x_flip.prg", cbm
- *= $0800
- !byte $00,$0c,$08,$0a,$00,$9e,$34,$39,$31,$35,$32,$00,$00,$00,$00
- *=$c000
- lda #$01 ; swith on sprite 0
- sta $d015
- lda #$60 ; position sprite
- sta $d000
- sta $d001
- lda #50 ; set sprite pointer to 50
- sta 2040
- keyb lda 197 ; check to see if a key has been pressed
- cmp #64
- beq keyb
- changespr jsr reverse
- jmp keyb
- reverse
- ; Reverse the sprite
- ldy #$00 ; reverse all the bytes
- loop lda 3200,y
- sta $02
- jsr revbyte
- sta 3200,y
- iny
- cpy #64
- bne loop
- ; now fiddle with the byte positions ...
- ldx #$00
- loop2 lda 3200,x
- sta temp1
- inx
- inx
- lda 3200,x
- sta temp2
- dex
- dex
- lda temp2
- sta 3200,x
- inx
- inx
- lda temp1
- sta 3200,x
- inx
- cpx #63
- bne loop2
- rts
- ; Reverse the byte stored at $02
- ; Answer returned in accumulator
- revbyte ldx #$07
- loop1 asl $02
- ror
- dex
- bpl loop1
- rts
- sprite *=3200 ; (50*64=3200)
- !byte 0,0,0
- !byte 0,0,0
- !byte 24,0,0
- !byte 28,0,0
- !byte 31,0,0
- !byte 15,128,0
- !byte 15,192,0
- !byte 15,240,0
- !byte 15,126,0
- !byte 126,63,192
- !byte 255,127,240
- !byte 255,254,0
- !byte 15,248,0
- !byte 31,224,0
- !byte 31,192,240
- !byte 31,131,128
- !byte 30,132,0
- !byte 28,184,0
- !byte 24,248,24
- !byte 16,15,240
- !byte 0,0,0
- temp1 !byte 0
- temp2 !byte 0
ZitatZitat von »Salator«
Die Sprites, ich bekomme momentan zwischen Musik und Charset 32 Blöcke unter
...läßt mich vermuten, dass die Musik eh nicht bei $1000 liegt. *ausdemfensterlehn*
Naja... Schau einfach mal in den Code statt zu orakeln, das ZIP-File enthält auch Source