AID/スルーパス 運営公式ブログ

スマートフォン向けアドネットワーク「AID(エイド)」、SSPの「スルーパス」運営チームの公式ブログ。
Android/iOS向けのマネタイズプラットフォームとして、
開発・DL数拡大・収益化をテーマとした記事を更新していきます。

タグ:アプリ

このエントリーをはてなブックマークに追加

前回にゲームのルールに関する部分を作っていきました。
今回はコインを100枚取得するとLIFEが1回復するという機能を作って見たいと思います。

第9話 1up機能を作ってみる

コインをただ取るだけでは面白味が無いので、某ゲームのようにコインを100枚取得するとLIFEが1回復するという処理を実装してみます!

やりたいこととしては、
1. コインが100枚になったら0にリセットする
2. コインが100枚になったらLIFEを1回復させる
※LIFEは7話で作成したDeathカウントをLIFEに改造したものです。

まずはコインが100枚になったら0にリセットさせる箇所からやってみます。
cats

Scoreのスクリプトを開いて、コイン取得のスクリプトに下記のスクリプトを追記します。
========
if( totalCoins == 100 ){
totalCoins -= 100;
========
宣言したtotalCoinsが100になると100引くという簡単な処理です。

続いてLIFEを増やす処理を記述してみます。
LIFEを増やすには7話で作成したDAMAGEのスクリプトに処理を加える必要があります。

========
var DAMAGE = GameObject.Find("DAMAGE");
DAMAGE.BroadcastMessage("outDAMAGE", SendMessageOptions.DontRequireReceiver);
========
内容は、DAMAGEオブジェクトのスクリプトを見て「outDAMAGE」の処理を実行するという感じです。

あとは「outDAMAGE」という処理をDAMAGE.jsに記述します。
========
function outDAMAGE () {
totalDAMAGE += 1;
PlayerPrefs.SetFloat("DAMAGE",totalDAMAGE);
transform.guiText.text = "LIFE: " + totalDAMAGE.ToString();
}
========
outDAMAGEを実行するとtotalDAMAGEに1足して、
PlayerPrefs(保存機能)のDAMAGEの数値をtotalDAMAGEに置き換えて画面に表示します!
みたいな感じです。

【操作方法】
左右移動(←,→)
ジャンプ(Space)


この記事を書いた人
 石田 哲也  AIDパートナー様担当
 canvas facebook
神奈川県出身。輸入事業で起業後、広告代理店~リワードアドネットワーク~アプリ開発事業を経てライヴエイドに参画。
このエントリーをはてなブックマークに追加

前回は3回落下するとゲームオーバーという処理を書きました。
今回はその続きで敵に当たってもカウントするような処理を実装してみます。

第8話 敵に当たったらカウントする

まずは、敵のスクリプトを探すところからはじめます。
cats

このProjectでは敵はEnemyという名前で作成されているので、
それらしいスクリプトを探します・・・ありました!
そこから敵に当たると処理が走る箇所を特定、下記のように記述されていました。

======
function OnTriggerEnter (other : Collider){
if(other.tag == "Player"){
var lvlName:String = Application.loadedLevelName;
Application.LoadLevel(lvlName);
}
}
======

これに前回作成したスクリプトを持ってきて、下記のように記述して見ました!

======
function OnTriggerEnter (other : Collider){
if(other.tag == "Player"){
var score = GameObject.Find("Deth");
score.BroadcastMessage("getDeth", SendMessageOptions.DontRequireReceiver);
{
var lvlName:String = Application.loadedLevelName;
Application.LoadLevel(lvlName);
}
}
}
======

基本的には前回作成したものと同じ動きをしてくれれば良いので、
躓かずに上手く動きました!

まだ色々と手を付けなきゃいけない箇所が多いですが、一応ゲームっぽくなってきたと思います!

【操作方法】
左右移動(←,→)
ジャンプ(Space)


次回はコインを100枚集めてLIFEが1upする機能を作っていきたいと思います。

この記事を書いた人
 石田 哲也  AIDパートナー様担当
 canvas facebook
神奈川県出身。輸入事業で起業後、広告代理店~リワードアドネットワーク~アプリ開発事業を経てライヴエイドに参画。
このエントリーをはてなブックマークに追加

前々回から前回に掛けて画像を差し替える作業を行ってきました。
今回はよりゲームらしく仕立てるために、3回死んだらゲームオーバーという機能を実装してみたいと思います。

第7話 条件による分岐(条件の修正)

現在の内容ではゲームオーバーという概念が無いので、ゲームオーバーの条件を付けたいと思います。

内容としては、
1.プレーヤーが死ぬ条件を修正
2.死んだ回数をカウント
3.カウントした回数にリミットを設け、リミットに達するとゲームオーバー画面に遷移

1から順にやってみます!

まずはプレイヤーが落下すると死ぬというところから
cats
現在はプレイヤーのY軸(縦)が設定値以下に遷移すると死ぬ設定です。

↓こんな感じでプレイヤーオブジェクトに書かれていた
==============
if(transform.position.y < fallLimit){ var lvlName:String = Application.loadedLevelName; Application.LoadLevel(lvlName); }
==============

スクリプトは全くの無知なので、なんとなく解釈すると、
もし(if)Y軸の位置が(transform.position.y)<(より小さい)fallLimit(Y軸の値)
ようするにプレイヤーのY軸が規定Y軸の位置より小さくなると、
シーンの最初に戻る。

みたいな感じだと思います。
※間違ってたらごめんなさいm(_ _)m

これを、上の画像のようにするには、
1.落下判定をするオブジェクトを設置
2.落下判定オブジェクトにスクリプトを記述
3.落下した回数をカウント
4.落下に回数制限を設けてゲームオーバー画面に遷移

cats
HierarchyのCreateタブからCubeを選択してオブジェクトを追加します。
オブジェクトの名前をわかりやすいものに変更します。
今回は「DeathZone」にしました。

cats
作成したDeathZoneを落下地点に設置します。
Cube(Mesh Fillter)の歯車をクリックして、RemoveConponentをクリックすると、オブジェクトの表示が消えるので消してみます。
そして、BOX ColliderのIS Triggerにチェックを入れます。
これは、スクリプトで当たり判定を取る際に必要な箇所です。
要するにこれに触れるとなにか処理するみたいな時はチェックを入れるみたいです。

続いて落下した際の処理をするスクリプトを記述します。
cats
DeathZoneを選択してInspectorのAdd Componentをクリック、NewScriptをクリックしてJavaScriptをDeathZoneに追加します。
JSの名前はDeathZoneにしました。

ここからはスクリプトを書かなければいけません!!
筆者は全くの無知ですので、一からスクリプトを書くのはいくら時間があっても足りません!!
というかブログの更新頻度が下がって怒られます><

なので、このプロジェクトで使用している他のJSをコピペで持ってきました^^;
筆者がCompleteProjectから作り始めた一番の理由です!!

やりたいこと
・DeathZoneにプレイヤーが触れると、シーンの最初に戻る
・DeathZoneに触れた回数をカウント

上記の処理に近いのが、このプロジェクトだとコインを取得する処理です。
なので、コインを取得するスクリプトを見てみます。

==============
function OnTriggerEnter(other : Collider){
if(other.tag == "Player")
{ var score = GameObject.Find("Score");
score.BroadcastMessage("getCoin", SendMessageOptions.DontRequireReceiver);
Destroy(gameObject);
}
}
==============

なんだかよくわからないですが、
プレイヤーがこのオブジェクトに触れるとコインをゲットしてスコアに数値が加算されてコインのオブジェクトは消えます。
みたいな感じだと思います!
※間違っていても責任は取りません><

これをそのままDeathZoneに置き換えて、消える処理を削除して・・・

==============
function OnTriggerEnter(other : Collider){
if(other.tag == "Player"){
var score = GameObject.Find("Deth");
score.BroadcastMessage("getDeth", SendMessageOptions.DontRequireReceiver);
{
var lvlName:String = Application.loadedLevelName;
Application.LoadLevel(lvlName);
}
}
}
==============

こんな感じにしてみました!
※Dethのスペルが違う(Death)のは突っ込まないで下さい( -_-)

プレイヤーがオブジェクトに触れるとDethをゲットしてDethに数値を加算してシーンの最初に戻ります。
みたいな感じだと思います。

続いて、カウンターを作成します。
これもほとんどコピペで作ります。
CoinのカウントはScoreという名前のGUIでカウントしているようなので、
GUIごとコピペします。
※GUIとはグラフィックユーザーインターフェース、つまりボタンや数値などのUIです。多分。

続いてGUIの名前を変更します。(Dethという名前にしました)
中にScoreというスクリプトが記述されているので、スクリプトもコピペして名前をDethに変更、
GUIに入っているスクリプトをScoreからDethに変更します。

このスクリプトに書かれているCoinsなど参照していそうな怪しい箇所を全てDethに置き換えて、カウントされるか確認してみます。
cats
出来ました!!ちょっと感動です!!!
※ここまでスムーズに進んでいるようですが、結構苦戦してます^^;

最後にDethカウントにリミットを設ける処理を追記しました。

==============
function OnGUI () {
if( totalDeth >=  3 )
{
Application.LoadLevel("Result");
}
}
==============

このGUIが3以上の数値になると、Result(ゲームオーバー)に遷移します。
みたいな感じです。
指定しているシーンのResultはとりあえず空のシーンを作ってみました。

今回はちょっと長くなってしまいました!

次回は敵に当たるとカウントする処理を実装したいと思います。


この記事を書いた人
 石田 哲也  AIDパートナー様担当
 canvas facebook
神奈川県出身。輸入事業で起業後、広告代理店~リワードアドネットワーク~アプリ開発事業を経てライヴエイドに参画。
このエントリーをはてなブックマークに追加

前回は主人公のキャラを変えてみました。
今回はマップなどのテクスチャを変えて見たいと思います!

第6話 マップのテクスチャを変えてみる

今回はマップのテクスチャを変えて見たいと思います。
みどりのじいさん
こんな感じの殺風景なデザインから・・・
マップ側替え
それっぽくなりました!!

画像の差し替えは前回の記事と同じ要領で、画像のオブジェクトを探して差し替える感じです。
すごく簡単ですが、見た目がかなり変わるので力を入れたいところですね!


次回は実際にスクリプトを弄って見たいと思います!


この記事を書いた人
 石田 哲也  AIDパートナー様担当
 canvas facebook
神奈川県出身。輸入事業で起業後、広告代理店~リワードアドネットワーク~アプリ開発事業を経てライヴエイドに参画。
このエントリーをはてなブックマークに追加

前回は実際にUnityのAsset StoreからComplete Projectsを購入して画面に出してみました。
今回からは売れそうなゲームっぽく仕立てていきたいと思います。

第5話 主人公を変えてみる

今回はプレイヤーの画像を変えて見たいと思います。
Complete Projectsと言っても、キャラなどはわりとざっくり作っているものなのでテンションを上げるため、主人公から変えたいと思います。
まずはプレイヤーのオブジェクトを探します



ありました!!
キャラ替え
次にプレイヤーの画像を差し替えていきます。
プレイヤーの画像素材を作成して、右側のInspector内にある画像に当て込んでいきます。

今回、筆者が作成しているゲームは左右移動とジャンプの画像で計10個あるので、
元画像を見ながらそれっぽい感じの画像を探してきました!
元画像は256×256だったのですが、良さそうな画像が小さいサイズしかなかったので、32×32に切り出して使っています。

この時、注意する点として画像の内容をInspectorで設定する必要があり、そのままでは背景が透過されませんでした。

初心者で無知な筆者は、初期設定と同じ「Texture Type」を「GUI」、「Filter Mode」を「Point」、「MAX Size」を「32」に設定しました。
みどりのじいさん
変わりました!!
みどりのおじいちゃんを主人公にしてみました。
※素材はフリー素材を持ってきました

次回はマップをカスタマイズしてみたいと思います。


この記事を書いた人
 石田 哲也  AIDパートナー様担当
 canvas facebook
神奈川県出身。輸入事業で起業後、広告代理店~リワードアドネットワーク~アプリ開発事業を経てライヴエイドに参画。




aid_200

このページのトップヘ