« [奮闘記]流れる星空を表示するのだ | トップページ | [奮闘記]流れる星空を背景に、自分が好きなように動かせるキャラを表示するのだ »

[奮闘記]流れる星空を背景に、静止したキャラを表示するのだ

とりあえず早くキャラを動かしてみたいけど、慌てない慌てない。さっき作った流れる星空を背景に、まずは静止したキャラを表示させてみよう。ちなみに用意したキャラはこれ。

あれ?なんで縦向きなの?・・・実は横向きのキャラがうまく描けなかったのだ。だからそれにあわせてスクロール方向も縦方向に変えちゃったという^^;


SCREEN 0,600,400,1,100,50,600,400
CLS 4
RANDOMIZE

;バッファーに星空の絵を描きこみ
BUFFER 3,600,400,1
COLOR 0,0,0 : BOXF 0,0,600,400
REPEAT 1000
RND X,600 : RND Y,400
RND R,7 : RR=(R+1)*32-1
RND G,7 : GG=(G+1)*32-1
RND B,7 : BB=(B+1)*32-1
COLOR RR,GG,BB
PSET X,Y
LOOP
BUFFER 4,600,400,1 ;星空を保存するための画面を準備

;バッファーに自機の画像を描きこみ
BUFFER 2,600,400,1
POS 0,0 :
PICLOAD "myship.bmp"
MX=300 :MY=200 ;自機の初期位置を指定

;描画画面の準備
GSEL 0 : COLOR 0,0,0 : BOXF O,O,600,400
PALCOPY 3
POS 0,0 :GCOPY 3,0,0,600,400 ;星空を複写
POS MX,MY :GCOPY 2,0,0,32,32 ;自機画像を複写

;メインルーチン
*MAIN
REPEAT 400
REDRAW 0
GOSUB *HAIKEI
GOSUB *JIKI
REDRAW 1
STICK K : IF K=128 : STOP
AWAIT 16
LOOP
GOTO *MAIN

;流れる星を表示するためのサブルーチン
*HAIKEI
GMODE 1,600,400
GSEL 4
POS 0,0 : GCOPY 3,0,0,600,400 ;現在の画面を保存

GSEL 3
POS 0,0 : GCOPY 4,0,399,600,400
POS 0,1 : GCOPY 4,0,0,600,399

GSEL 0
POS 0,0 : GCOPY 3,0,0,600,400
RETURN


;自機を表示するためのサブルーチン
*JIKI
GMODE 2,32,32
POS MX,MY :GCOPY 2,0,0,32,32
RETURN
 

自機を表示する座標をわざわざ変数にしてるのは、今後のことを考えて。いずれは動かすわけだから、変数にしておくべきだもんね。今回のには意味ないけど^^;

しっかしだんだん長くなってきたなぁ~。でもこれだけ長くなっても、新しく出てきた命令は3つだけ。

PICLOAD "(読みこむ画像ファイル名)"
指定した画像を、カレントポジションに描画。

敵とか味方とか背景なんかを外部ファイルから読みこませるのはこれだね。今後活躍しそうな命令^^

GOSUB (ラベル名)
指定したフラグに移動し、RETURNで戻る。

RETURN
移動元のGOSUBへ戻る。

この二つも「REPEAT~LOOP」と同じように、必ずペアで用いるそうな。いわゆるサブルーチンジャンプって奴だな。このプログラムを最初に実行したとき、いきなり終わっちゃったんで「???」ってなったんだけど、単にRETURNを忘れてただけだったという^^;

今回はウィンドウを3枚も使っちゃったけど、バッファーを宣言するときにウィンドウサイズを大きくしておけば、2枚でできそうね。まぁ8枚使えるわけだから、今のうちはあんまり気にしなくても良いかもしれないけど、そのうち困るときが来そうだから注意しておこう。

さて、いよいよ次は、カーソルキーで自機を動かすプログラムだ!とりあえず最初の目標だったからね。感無量^^

« [奮闘記]流れる星空を表示するのだ | トップページ | [奮闘記]流れる星空を背景に、自分が好きなように動かせるキャラを表示するのだ »

1.奮闘記」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/67538/57445596

この記事へのトラックバック一覧です: [奮闘記]流れる星空を背景に、静止したキャラを表示するのだ:

« [奮闘記]流れる星空を表示するのだ | トップページ | [奮闘記]流れる星空を背景に、自分が好きなように動かせるキャラを表示するのだ »