上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- -- l スポンサー広告 l top
セミグラフィックの次はPCGを利用したミニグラフィックを組んでみました。

こんな感じで、64x32ドットだけではありますが、セミグラフィックより細かい絵を表示できます。


原理説明をパワポで書いてみました。


この方式の利点(?)は複数のグラフィック窓を同時に表示できることです。
ただし、全く同じ画面ですが。
「スポンサードリンク」

style="display:block"
data-ad-client="ca-pub-0620260288102702"
data-ad-slot="9773401572"
data-ad-format="auto">










ソースは以下の通りです。300行台がミニグラフィックサブルーチン。その前は確認用デモです。

10 CLS:LC0,0:?"MINI GRAPHIC":X=0:Y=2:GOSUB 350:U=0:GOSUB 360
20 U=64:R=0:X=0:Y=0:S=1:T=0:GOSUB 340:U=32:X=63:Y=0:T=1:S=0:GOSUB 340
30 U=64:R=0:X=63:Y=31:S=-1:T=0:GOSUB 340:U=32:X=0:Y=31:T=-1:S=0:GOSUB 340
40 X=10:Y=10:D=1:E=1:A=100:B=2
60 R=1:GOSUB310:X=X+D:Y=Y+E:R=2:GOSUB310:IF Z>0 X=X-D:GOSUB 310:Y=Y-E:IF Z=0 D=-D:BEEP50 ELSE E=-E:BEEP90
80 A=A-1:IF A<0 A=100:B=B+3:X=B:Y=B:GOSUB350 ELSE R=0:GOSUB 310
90 GOTO 60
190 END
302 '** MINI GRAPHIC SUBS **
305 '== PSET/RESET/PGET X,Y ==
310 Z=#700+Y+(X&#F8)*4:V=#80>> X%8:W=PEEK(Z)
320 IF R=0 POKE Z,W|V:RETURN
325 IF R=1 POKE Z,W&(#FF-V):RETURN
330 Z=W&V:RETURN
340 '=== HVLINE X,Y,U,S,T ===
345 FOR Q=1 TO U:GOSUB 310:X=X+S:Y=Y+T:NEXT:RETURN
350 '=== OPEN X,Y ===
355 FOR W=0 TO 3:FOR V=0 TO 7:LC X+V,Y+W:?CHR$(#E0+W+V*4);:NEXT:NEXT:RETURN
360 '=== CLEAR ===
365 FOR V=#700TO#7FF:POKE V,U:NEXT:RETURN



動きはyoutubeでご覧ください。


---------------------------------------------------
機能の説明: GOSUBでコールすることで以下が使えます。
---------------------------------------------------
310行 X,Yで指定された位置のPSET/PRESET/PGETを
     行います。機能はRで指定します。
     R=0:PSET(ドットを打つ)
     R=1:PRESET(ドットを消す)
     R>1:PGET(そのドットがオンかオフかを返す。
               Z=0ならオフ、Z>0ならオン)
     V,W,Zを使用するので値が壊れます。
---------------------------------------------------
340行 X,Yで指定された位置からUの数だけ線を引きます。
    線の方向は横方向をS,縦方向がTです。
    S,Tを2以上にすると点線にもなります。
    Q,V,W,Zを使用するので値が壊れます。
---------------------------------------------------
350行 X,Yで指定された位置(テキスト画面座標)に
     8x4キャラクタでミニグラフィック画面を展開します。
     V,Wを使用するので値が壊れます。
---------------------------------------------------
360行 ミニグラフィック画面をUで指定された値でフィルします。
     U=0なら真黒に、U=255なら真っ白になります。

※最初に360、350を実行してください。

 
これ何に使うか、ですが、例えば画面の一部にグラフとか表示できそうですね。

ゲーム系だと、リアルタイム表示は難しそうですが、初期のドラクエの戦闘シーンみたいな敵キャラの表示なんかには使えるのでないかと思います。

複数表示機能は。。。。デモ以外にはあまりないかな? (^^;

ともかくichigojamはテキスト、セミグラフィック、ミニグラフィックの3種類混載での表現ができるわけで、
メモリ制限の方もBASICプログラム領域はともかく、データの方はI2Cでかなり増やせる模様ですので、結構いろいろな表現ができると思います。


それではまたです。


2015.04.25 Sat l ICHIGOJAM l コメント (0) l top

コメント

コメントの投稿












上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。