LGP3講座
LGP3に関する基礎知識からちょっとした小技、
使用している周辺ツールの紹介なんかも
やっていけたらと思います


TOPへ戻る

001 その1 LGP3とは?
002 その2 LGP3に必要なもの
003 その3 2D画像の表示
004 その4 キャラをコントローラで動かす
005 その5 マップチップ表示
006 番外編1 膨大なマップデータ
007 その6 膨大なマップデータの表示
008 膨大なマップをドットスクロール
009 番外編2マップ表示応用編
010 番外編3 フレームスキップ
011 番外編4 応用、モザイク処理
012 番外編5 スプライン、ベジェ
013 番外編6 ラスタースクロール
014 サンプル1 スーパーマリオみたいな挙動

- MultiView (Version 3.4) -

admin mode new input logout
005 その5 マップチップ表示 2010/05/09(Sun) 06:55
データはこちら(ZIP形式)

CH0=G@SETUP(640,480,16,1)
CH1=G@CHRLOAD("chip.bmp")

DIM MAP$(8)
//マップデータ
MAP$(0)="0000000000"
MAP$(1)="0001111110"
MAP$(2)="0112211100"
MAP$(3)="0122221110"
MAP$(4)="0122211110"
MAP$(5)="0012211310"
MAP$(6)="0001111000"
MAP$(7)="0000000000"

LOOP
G@CHRCLEAR(CH0)

FOR Y=0 TO 7
FOR X=0 TO 9

CHIP_NO=ATOI(MID(MAP$(Y),X+1,1))

G@CHRRECT(CH1,CHIP_NO*64,0,CHIP_NO*64+63,63)
G@CHRRECT(CH0,X*64,Y*64,0,0)
G@CHRCOPYF(CH1,CH0,0)

NEXT
NEXT

G@FLIP()
ENDLOOP

ではでは解説いきます(^^;
DIM MAP$(8)
//マップデータ
MAP$(0)="0000000000"
MAP$(1)="0001111110"
MAP$(2)="0112211100"
MAP$(3)="0122221110"
MAP$(4)="0122211110"
MAP$(5)="0012211310"
MAP$(6)="0001111000"
MAP$(7)="0000000000"
ここでマップデータを作ってます。
画像を見るとわかりますが64×64区切りで
左から0:海、1:草原、2:林、3:城
てな風に定義してます。

描画は画面左上から1チップづつ行っております
んで、
CHIP_NO=ATOI(MID(MAP$(Y),X+1,1))
ここで1チップ毎、各マップデータを取得しています。
気をつけないといけないのが、MID内のX+1です。
文字列左からX+1番目という意味ですが、
開始数値は0ではなく1からです。(その為の+1です)

ここでは1画面分のマップデータですが、
”何十画面分のデータとかなったらどーすんの?”
てなことになります(^^;
それは番外編という形でやっていきます(^^;