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

2018/09/01 21:20:39

MixJuice GET URL : kidspod.club/mj/559

キャラ DE エディタ

文字キャラクタで絵を描くツールです。

最初に横とたてのサイズを入力します。
横xたての値を102以下にしてください。

エディタ画面の操作は、
 ・矢印キーで描画エリアの移動
 ・スペースキーを押しながら矢印キーで、キャラクタ選択エリアの移動
 ・エンターキーで描画
です。
描き終わったら、O(オー)キーを押してください。
キャラクタコードが配列0~101に書き込まれ、さらに画面にカンマ区切りで表示されます。

プログラムを一度止めても、Runすると前回描いた絵が出てきますので、続きから始められます。
リセットはr(小文字のアール)です。

画面下部のCTRLには制御文字のコードをメモしています。(間違っていたらすみません。)
このコードのキャラクタはPOKEで出力できますが、CHR$ではこの通りに出力できません。

自分で使うつもりで作りましたが、せっかくなので公開しました。

  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

SOURCE CODE

10 'CHAR DE EDITOR
20 X=0:Y=0:Z=16:V=0:S=0:U=0
30 CLS:IF A>0 THEN GOTO 60
40 ?"YOKO(1-16)";:INPUT A
50 ?"TATE(1-16)";:INPUT B
60 CLS:LC 0,19:?"Width";A;" Height";B:?"O-Output r-Reset"
70 ?"CTRL #08-0A,#0C-0F,#10-15,#17-18,#1C-1F"
80 IF A*B>102 THEN ?"OVER 102(";A*B;")";
90 LC A,B:? CHR$(#9B);
100 FOR I=0 TO 255:POKE #910+I%16+I/16*32,I:NEXT
110 FOR I=0 TO A*B:POKE #900+I%A+I/A*32,[I*(I<102)]:NEXT
120 S=SCR(X,Y)
130 POKE #900+X+Y*32,1:POKE #900+Z+V*32,1
140 K=INKEY():CLK
150 M=(K=29)-(K=28):N=(K=31)-(K=30)
160 IF K=10 THEN S=U:BEEP 5,3
170 POKE #900+X+Y*32,S
180 POKE #900+Z+V*32,U
190 IF K=79 THEN GOTO 300
200 IF K=114 THEN CLV:RUN
210 IF BTN(SPACE) THEN GOTO 250
220 X=X+M*(X+M>=0)*(X+M<A)
230 Y=Y+N*(Y+N>=0)*(Y+N<B)
240 GOTO 120
250 Z=Z+M*(Z+M>15)*(Z+M<32)
260 V=V+N*(V+N>=0)*(V+N<16)
270 U=SCR(Z,V)
280 LC 16,17:?"CHR:#";HEX$(U);"(";U;") "
290 GOTO 120
300 FOR I=0 TO A*B-1
310 IF I<102 THEN [I]=SCR(I%A,I/A)
320 NEXT
330 CLS:FOR I=0 TO A*B-1:? "#";HEX$([I]);
340 IF (I+1)%A=0 THEN ? ELSE ?",";
350 NEXT

COMMENT