トッププチコン関連 > スプライト配置修正





デフォルトのスプライトキャラの256番以降は、
16*16よりも大きいキャラクタが登録されていますが、
これは16*16単位で複数のスプライトを並べる前提で登録されており、
SPSETでキャラ全体のサイズ(32*32など)を指定しても正しく表示されません。
(これは初代プチコンでスプライトのサイズが16*16固定だったことに起因しています)

そこで、スプライトキャラを並びかえ、一つのスプライトとして登録できるようにします。

64*64ドットのキャラの場合
sprfix_01.png(6604 byte)
・プログラムソース
始めに結果を保存するか聞かれるので、
並び替え後のCHRリソースを保存する場合はYと入力してください。
INPUT、SAVE部分を削除して初期化のサブルーチンとして組み込むといいかもしれません。

実行前ではSPSET 0,448,12,0,0,0,64,64とかだと正しく表示されませんが、
実行後に再度やると正しく表示されるようになります。
'オオキイ スプライトCHR ノ ナラビカエ
CLEAR : ACLS
DIM C$(64)
RESTORE @TBL

INPUT "ケッカ ヲ SAVE シマスカ(Y/N)";S$

FOR T=0 TO 3
 READ RES$,XN,YN,CO,CN
 GOSUB @DATASET
 IF S$=="Y" THEN SAVE RES$+":"+RES$+"_"
NEXT
END

@TBL
DATA "SPU4",4,2,0,128
DATA "SPU5",4,4,0,256
DATA "SPU6",4,4,0,256
DATA "SPU7",8,8,0,256

@DATASET
CHRINIT RES$
NUM=XN*YN
FOR C=CO TO CN-NUM STEP NUM
 FOR I=0 TO XN*YN-1
  T1=FLOOR(I/4) : T2=I%4
  X=(T1%(XN/2))*2 + T2%2
  Y=FLOOR(T1/(XN/2))*2 + FLOOR(T2/2)
  CHRREAD(RES$,C+I),C$(Y*XN+X)
 NEXT

 FOR I=0 TO XN*YN-1
  CHRSET RES$,C+I,C$(I)
 NEXT
NEXT
RETURN
QRコード
scroll1.png(2110 byte)





戻る