Enjoy programming more!
Kidspod is a post site which supports young programmers.
First step to join us.
Register as a member
For members

2019/05/16 08:45:53

MixJuice GET URL : kidspod.club/mj/836

PCG TOOLS キャラクタ改造のサポートツール

PCG HELP LRUN0
PCG MAKE LRUN1
PCG POKE LRUN2
PCG ROLL LRUN3

IchigoJamの#E0-#FF PCGエリアの作成を補助するツールです。

?CHR$(#E0):POKE#70,1,2,4,8,16,32,64,128
キャラクタを表示してデータを書き換えることができます。
定義されたキャラクタデータは電源を切るまで消去されません。
初期化はCLP命令

PCG HELP
PCGをキーボードから直接入力する方法 ALT SHIFT との組み合わせを表示します。
定義されているキャラクタを確認することができます。
キー入力のテストができます。

PCG MAKE
160 C=2 でCHR$(#E2)を指定。
POKEで`二進数8桁で記述したデータを書き込みます。
書き込んだデータはPOKEアドレス、8個のデータで表示。
カーソルを移動させてENTERでプログラムに追記して記録します。
C= と POKEで書き込むデータを編集して使用します。

PCG POKE LRUN2
S= E= で開始・終了を指定して、PCGを定義するPOKE文を画面に表示します。

PCG ROLL
#E2のキャラクタを左回転 右回転 180度回転 上下反転 左右反転してキャラクタに変換します。

  • 1
  • 2
  • 1
  • 2

SOURCE CODE

NEW
10 'PCG HELP
20 CLS
30 CLS:?"       ";CHR$(#FF);"IchigoJam PCG":?
40 ?"       0123456789ABCDEF"
50 ?"      ";CHR$(#98);:FORI=0TO15:?CHR$(#91);:NEXT:?
60 ?"Alt   ";CHR$(#92);
70 FORI=#E0TO#EF:?CHR$(I);:NEXT
80 ?" #E0-#EF"
90 ?"+Shift";CHR$(#92);
100 FORI=#80TO#8F:?CHR$(I);:NEXT
110 ?" #80-#8F"
120 ?
130 ?"       GHIJKLMNOPQRSTUV"
140 ?"      ";CHR$(#98);:FORI=0TO15:?CHR$(#91);:NEXT:?
150 ?"Alt   ";CHR$(#92);
160 FORI=#F0TO#FF:?CHR$(I);:NEXT
170 ?" #F0-#FF"
180 ?"+Shift";CHR$(#92);
190 FORI=#90TO#9F:?CHR$(I);:NEXT
200 ?" #90-#9F"
210 LC0,14:?CHR$(24);:INPUT"TEST:",C:CONT
SAVE 0

NEW
100 'PCG MAKE
110 CLS:?"    0 1 2 3 4 5 6 7":?
120 FORJ=0TO3:?"#";HEX$(#E0+J*8);" ";:FORI=0TO7:?CHR$(#E0+J*8+I,0);:NEXT:?:?:NEXT:?
130 '
140 '----------
150 '
160 C=2:A=#700+C*8
170 '         +------+
180 POKE A  ,`00001100
190 POKE A+1,`00011100
200 POKE A+2,`00111100
210 POKE A+3,`01111100
220 POKE A+4,`00011100
230 POKE A+5,`00011100
240 POKE A+6,`00011100
250 POKE A+7,`00011100
260 '
270 '----------
280 '
290 ?500+C*10;" POKE#";HEX$(A);
300 FOR I=A TO A+7:?",";PEEK(I);:NEXT:?:?
SAVE1

NEW
100 'PCG POKE
110 CLS:?"    0 1 2 3 4 5 6 7":?
120 FORJ=0TO3:?"#";HEX$(#E0+J*8);" ";:FORI=0TO7:?CHR$(#E0+J*8+I,0);:NEXT:?:?:NEXT:?
130 '-----
140 INPUT "S=",S:INPUT "E=",E
150 FORC=STOE:A=#700+C*8
160 ?500+C*10;" POKE #";HEX$(A);
170 FOR I=A TO A+7:?",";PEEK(I);:NEXT:?:NEXT
SAVE2

NEW
100 'PCG ROLL
110 CLS:?"    0 1 2 3 4 5 6 7":?
120 FORJ=0TO3:?"#";HEX$(#E0+J*8);" ";:FORI=0TO7:?CHR$(#E0+J*8+I,0);:NEXT:?:?:NEXT:?
130 '----------
140 C=2:A=#700+C*8
150 C=4:B=#700+C*8
160 C=1:R=#700+C*8
170 C=0:L=#700+C*8
180 C=3:T=#700+C*8
190 C=5:S=#700+C*8
200 '-------
210 FOR I=0 TO 7
220 POKE B+7-I,PEEK(A+I)
230 NEXT
240 '-------
250 E=1
260 FOR I=0 TO 7:F=1:D=0
270 FOR J=0 TO 7
280 G=PEEK(A+J)
290 D=D+(G&E>0)*F:F=F*2
300 NEXT
310 POKE R+7-I,D:E=E*2
320 NEXT
330 '-------
340 E=1
350 FOR I=0 TO 7:F=1:D=0
360 FOR J=0 TO 7
370 G=PEEK(A+7-J)
380 D=D+(G&E>0)*F:F=F*2
390 NEXT
400 POKE L+I,D:E=E*2
410 NEXT
420 '-------
430 FOR I=0 TO 7:F=1:D=0
440 G=PEEK(A+I):E=256
450 FOR J=0 TO 7:E=E/2
460 D=D+(G&E>0)*F:F=F*2
470 NEXT
480 POKE T+7-I,D:E=E*2
490 NEXT
500 '-------
510 FOR I=0 TO 7:D=0
520 G=PEEK(A+I):E=128:F=1
530 FOR J=0 TO 7
540 D=D+(G&E>0)*F:E=E/2:F=F*2
550 NEXT
560 POKE S+I,D:E=E*2
570 NEXT
SAVE3

COMMENT