プログラミング

2週間でゲームを作る:ちょっとしたゲーム要素を加えよう!

前回までのあらすじ

遂に風船を浮かせるだけのゲームを作ったルアくん。これから彼のバラ色ゲームクリエイター人生が始まるのか。という所まででしたが、今回は風船を浮かせるだけのゲームに「スコア」の要素を追加していきましょう!

あわせて読みたい
ゲームの作り方を2週間で教える:物理エンジンでゲームを動かそうこんにちわ!今回皆さんに学んでいただくのは「物理エンジン」についてです。物理エンジンと聞くとうわぁ…と拒否反応を示す方もいると思います。...

STEP1:数字を表示させよう!

ルアくん
ルアくん
フハハハハハ!これで俺もゲームクリエイターだな!
コロナさん
コロナさん
(クソ)ゲームクリエイターですね!
コロナさん
コロナさん
でも先輩、もう少しだけこのゲーム面白くしませんか?
ルアくん
ルアくん
もう少し?このゲームを?これ以上?
コロナさん
コロナさん
(あ、プライドを傷つけてしまったかな…)
ルアくん
ルアくん
いいね!!!
コロナさん
コロナさん
(あーなんとかなったー…ってかこいつがアホでよかったー)
ルアくん
ルアくん
で、どうすればいいんだ?
コロナさん
コロナさん
スコア昨日を付けちゃいましょう!
ルアくん
ルアくん
おー点数つけるのか!面白いな!
コロナさん
コロナさん
はい!まずは数字を表示させるところから始めますよ!
コロナさん
コロナさん
こちらをコードの一番上の行に打ち込んでください!

local tapCount = 0

ルアくん
ルアくん
何も起こらないぞ…
コロナさん
コロナさん
はい!まだこれはスコアが0から始まりますよと宣言しただけです!
ルアくん
ルアくん
こちらをbackgroundのコードの後に打ち込んでください!

local tapText = display.newText( tapCount, display.contentCenterX, 20, native.systemFont, 40 )

コロナさん
コロナさん
backgroundの後ってどこだ?
ルアくん
ルアくん
こんな感じです!

local background = display.newImageRect( “background.png”, 360, 570 )
background.x = display.contentCenterX
background.y = display.contentCenterY

local tapText = display.newText( tapCount, display.contentCenterX, 20, native.systemFont, 40 )

ルアくん
ルアくん
なるほど!おぉ!白い0が出現したぞ!
コロナさん
コロナさん
良い感じですね!次は数字の色を変えてみましょう!

何故backgroundの後に書いたの?という疑問をお持ちの方もいると思います。

基本的には上から順に画像表示がされていくので、背景よりも先に0を表示させても背景に隠れてしまうというのが主な理由です。

画像を表示させる順番は上から順というのも覚えておきましょう!

tapText:setFillColor( 0, 0, 0 )

コロナさん
コロナさん
こちらを先ほどのコードの後に付け加えましょう!
ルアくん
ルアくん
おぉ!0が黒くなった!
コロナさん
コロナさん
そうなんです!この(0,0,0)という数字を変えると色々な色に出来ますよ!

色について

(0 , 0, 0)とありますが、これは左から赤、青、緑となっています。

0~1の間で色を決めることが出来ます。試しに左端の0を1に変えてみると面白いかもしれませんね!

STEP2:数字をカウントさせていこう!

コロナさん
コロナさん
さて次は数字を動かしていきます…!
ルアくん
ルアくん
おぉ!ようやくか!いいね!
コロナさん
コロナさん
ところで、どんな時に数字を動かしたいですか?
ルアくん
ルアくん
そうだな…株の取引き?
コロナさん
コロナさん
風船を触った時に数字が+1されていくってのはどうでしょう?
ルアくん
ルアくん
おぉ!そうしよう!
コロナさん
コロナさん
風船を触った時と聞いて何か思い出しませんか…?
ルアくん
ルアくん
風船を触る…?
ルアくん
ルアくん
 pushBalloonの事か!
あわせて読みたい
ゲームの作り方を2週間で教える:物理エンジンでゲームを動かそうこんにちわ!今回皆さんに学んでいただくのは「物理エンジン」についてです。物理エンジンと聞くとうわぁ…と拒否反応を示す方もいると思います。...
コロナさん
コロナさん
その通りです!pushBalloonに数字を+1させる機能も付けちゃいましょう!
ルアくん
ルアくん
おぉ!そんなことも出来るのか!
コロナさん
コロナさん
はい!pushballonのコードにこちらのコードを追加してください!

local function pushBalloon()
balloon:applyLinearImpulse( 0, -0.75, balloon.x, balloon.y )
tapCount = tapCount + 1
tapText.text = tapCount
end

ルアくん
ルアくん
きたあああ!数字が増えていくぞ!
コロナさん
コロナさん
遂にやりましたね!これでゲーム完成です!
ルアくん
ルアくん
よっしゃあああ!

tapCount = tapCount + 1
tapText.text = tapCount

風船を触ったとき「tapCount = tapCount + 1」で先ほど書いたtapCountに数字を1ずつ足していきます。この+の先を3にすれば3の3ずつ足していく事も可能です。因みにアホにはなりません。

次回予告

ゲームを完成させることに成功したルアくん。今度はなんとシューティングゲームに挑戦するらしい!BGMもついてスタート画面もつけてと何やら企んでいる様子だが、一体どうなるのか…?

ではまた!