2018年05月17日

LGP講座(かり~第9回 キャラクターを移動させてみよう!

yuu_bustup.jpg
優:こ、こんにちは。柊優です……。今月も、LGP講座(かり、は、はじまるよ……。

airi_bustup.jpg
愛梨:こんにちはー! 結城愛梨です! 今日も張り切って、LGPについて勉強しちゃうぞー!

haruka_bustup.jpg
陽香:うふふ、こんにちは。永乃原陽香です。今月もよろしくお願いしますね。さて、それじゃ愛梨ちゃん。さっそく次のプログラムを入力してみてください。

----------
X = 100
Y = 100

SCR = G@SETUP(640, 480, 32, 1)
BACK=G@CHRLOAD("back.bmp")
BAL=G@CHRLOAD("baroon2.bmp")

LOOP
  G@CHRCLEAR(SCR)
  G@CHRRECT(SCR, 0, 0)
  G@CHRCOPYF(BACK,SCR)
  G@CHRRECT(SCR, X, Y, X + 64, Y + 64)
  G@CHRCOPYF(BAL, SCR)
  G@FLIP()
ENDLOOP
----------

airi_bustup.jpg
はーい。かたかたかた……。実行したら、前回と同じように、山の背景に、風船が表示されたよっ。

haruka_bustup.jpg
さて、前回のプログラムと見比べて、何か気づきませんか?

airi_bustup.jpg
あっ! 変数が二つあるのと、二番目のCHRRECTのところに、その変数が使われてる!

----------
(前回)
G@CHRRECT(SCR, 100, 100, 164, 164)

(今回)
G@CHRRECT(SCR, X, Y, X + 64, Y + 64)
----------

yuu_bustup.jpg
うん、正解……。このように、CHRRECT命令では、書く位置(座標)に変数を使うことができるんだ……。

haruka_bustup.jpg
その場合、LGPはその変数の内容に従って、CHRRECT命令を実行してくるんですよ。今回の場合は、Xに100、Yに100が入っていたから、(100,100)の位置から(164, 164)の位置までの四角形に収まるように風船を描いてくれたわけです。

airi_bustup.jpg
そうかー、なるほどー。

haruka_bustup.jpg
さて問題です。変数は、その内容の数を足したり引いたりかけたり割ったりできましたよね。ということは?

airi_bustup.jpg
あっ! その位置を表す変数を足したり引いたりすれば、絵を動かすことができるんじゃないの!?

yuu_bustup.jpg
うん、そのとおりだよ……。例えばこれは、風船を左から右に移動させるプログラム。

----------
X = 0
Y = 150

SCR = G@SETUP(640, 480, 32, 1)
BACK=G@CHRLOAD("back.bmp")
BAL=G@CHRLOAD("baroon2.bmp")

LOOP
  G@CHRCLEAR(SCR)
  G@CHRRECT(SCR, 0, 0)
  G@CHRCOPYF(BACK,SCR)
  G@CHRRECT(SCR, X, Y, X + 64, Y + 64)
  G@CHRCOPYF(BAL, SCR)
  G@FLIP()

X = X + 2

IF X > 576 THEN
BREAK
ENDIF

S@SLEEP(1000 / 60)

ENDLOOP
----------

yuu_bustup.jpg
このプログラムでは、表示した後に、横の位置を表す変数Xの値を2ずつ増やすことで、風船のキャラクターの位置を右にずらしているんだ……。それで、右に移動するわけだね……。

airi_bustup.jpg
IF文でXが576より大きくなったらBREAKで繰り返しを抜けているってことは、横位置が576より大きくなったら、それで終わりにしてるってことじゃないかな?

haruka_bustup.jpg
はい、そのとおりです。画面の右端は640ですから、そこから風船のサイズ64を引いた576より風船が右に行ったら終わらせてるわけですね。
そうそう。S@SLEEPは、指定した時間だけ、実行を止める命令です。このプログラムでは、これを使ってスピードを調整しているわけです。

yuu_bustup.jpg
この変数を操作して絵を動かすテクニックと、キー入力をうまく組み合わせれば、キャラクターをキー入力で動かせるようにもできるよ……。例えば、上を押したら、縦位置を表す変数から2を引いたりとかね。色々勉強してみて……。

airi_bustup.jpg
はーいっ。

yuu_bustup.jpg
それじゃ、今日はここまで……。次回はいよいよ最終回。LGPで音楽や効果音を鳴らす方法について説明していくよ……。

airi_bustup.jpg
次でラストかぁ。よーし、がんばるぞーっ。

haruka_bustup.jpg
それでは、また次回まで、ごきげんよう。

※次の更新は、5月21日。『どっちのゲームSHOW!『ワルキューレの冒険』vs『ドルアーガの塔』』の予定です。お楽しみに!
posted by 裏編 at 07:30| LGP講座(かり | 更新情報をチェックする