2018年04月16日

LGP講座(かり~第8回 抜き色を指定してみよう!

yuu_bustup.jpg
優:こ、こんにちは。柊優です。
今日も、よ、よろしくね……。

haruka_bustup.jpg
陽香:永乃原陽香です。今回もLGP講座、よろしくお願いしますね。

airi_bustup.jpg
愛梨:結城愛梨でーす。よろしくお願いしまーす!
ねぇねぇ、二人とも、今日は何するの?

haruka_bustup.jpg
はい。まずは、愛梨ちゃんに、このプログラムを打ち込んでもらいましょうか。

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

LOOP
  G@CHRCLEAR(SCR)
  G@CHRRECT(SCR, 0, 0)
  G@CHRCOPYF(BACK,SCR)
  G@CHRRECT(SCR, 100, 100, 164, 164)
  G@CHRCOPYF(BAL, SCR)
  G@FLIP()
ENDLOOP
----------

airi_bustup.jpg
できたよー。さっそく動かしてみるね。それっ。

lgp1804-01.JPG

airi_bustup.jpg
山と青空の景色に、風船が浮かんでるよ。
こんな風に、絵の重ね合わせができるなんて、すごいなぁ……あれ?

yuu_bustup.jpg
どうしたのかな? 愛梨。

airi_bustup.jpg
風船の背景が透明になってないよ。これ、どうしたらいいのかなぁ……。

haruka_bustup.jpg
ふふふ、それが今回の講座の主題なんですよ。それでは、はじめていきましょうか。

~絵の背景を透明にする方法・その1~

haruka_bustup.jpg
まず一つは、絵の背景を黒にすることです。
試しに、ペイントで風船の絵の背景を黒にして、もう一度試してみてください。

airi_bustup.jpg
はーい。そして実行っと……おぉっ。

lgp1804-02.JPG

airi_bustup.jpg
今度はちゃんと、背景が透けて見えてるよ!

yuu_bustup.jpg
このように、LGPは、黒を抜き色(その色の部分を透明にしてくれる色)にして扱ってくれるんだ……。

airi_bustup.jpg
そうなのか~……だけど、黒も使いたい場合は困るなぁ……。

haruka_bustup.jpg
そのための方法も、ちゃんとLGPには用意してありますよ。
それはこの後紹介しますね。

~絵の背景を透明にする方法・その2~

haruka_bustup.jpg
さて、二つ目の方法は、G@CHRLOADCKEYという命令を使って、抜き色を指定する方法です。

airi_bustup.jpg
へぇ~。その命令ってどう使えばいいの?

haruka_bustup.jpg
それじゃ試しに、次の一文を二行目と三行目の間に入れて、実行してみてくださいね。

----------
G@CHRLOADCKEY(0, 255, 0)
----------

airi_bustup.jpg
あ! さっきみたいに、背景が透けて見えてるよ!

haruka_bustup.jpg
さて、この命令の使い方ですが、( )の中の三つの数字は、それぞれ、赤、緑、青の色の濃さを表します。例えば、(255, 255, 255)なら白になりますし、(255, 255, 0)なら黄色になりますよ。

airi_bustup.jpg
なるほど~、わかったよ。

haruka_bustup.jpg
一つ注意点があります。G@CHRLOADCKEYを実行すると、そのあとG@CHRLOADで読み込んだ画像に、その色が適用されます。
絵ごとに抜き色を変えたいときは、その都度、読み込む前に、G@CHRLOADCKEYを実行してくださいね。

yuu_bustup.jpg
さて、ここでもう一つ、新しい命令でも教えておこうかな。G@CHRCLEAR命令だよ。
この命令は、指定したキャラクタやサーフェスを、まっさらな状態に戻す命令だよ。

airi_bustup.jpg
なるほどー。でも、どうしていちいち消すの?

haruka_bustup.jpg
画像を表示し続けるために、LOOP~ENDLOOPで繰り返している関係上、消しておかないと、現在の絵の上に、さらに上書きしていくからですよ。絵がそのまま動かないならいいですが、例えばゲームなどで、絵が動く場合は、どうなっちゃいますか?

airi_bustup.jpg
あー、ぐちゃぐちゃになっちゃうね!

haruka_bustup.jpg
ですよね。そうならないようにするのに、こうしてるわけです。
グラフィックを表示させるときは、G@CHRCLEARで画面をきれいにする→絵を描く→G@FLIPを実行する、という処理を繰り返すことで行うんですよ。

airi_bustup.jpg
はーい、わかりましたーっ。

yuu_bustup.jpg
それでは、今日はここまで……。
次回は、陽香もちらっと言ってたように、絵を動かすことをやってみようかな、と思う。
お楽しみにね……。

airi_bustup.jpg
はーい、次回も頑張るぞーっ。

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

※次の更新は、4月19日、フリーゲームレビューの予定です。お楽しみに!
posted by 裏編 at 19:52| LGP講座(かり | 更新情報をチェックする