合計 昨日 今日

アバター
Dixq (管理人)
管理人
 
記事: 1535
登録日時: 2010年10月12日(火) 20:16
お住まい: 北海道札幌市
日記: 日記を見る (567)
日記
- 11月 2017
アンパンマンとバナナ (0)
   2017年11月16日(木) 23:28

+ 10月 2017
+ 9月 2017
+ 8月 2017
+ 7月 2017
+ 6月 2017
+ 5月 2017
+ 4月 2017
+ 3月 2017
+ 2月 2017
+ 1月 2017
+ 12月 2016
+ 11月 2016
+ 10月 2016
+ 9月 2016
+ 8月 2016
+ 7月 2016
+ 6月 2016
+ 5月 2016
+ 4月 2016
+ 3月 2016
+ 2月 2016
+ 1月 2016
+ 12月 2015
+ 11月 2015
+ 10月 2015
+ 9月 2015
+ 8月 2015
+ 7月 2015
+ 6月 2015
+ 5月 2015
+ 4月 2015
+ 3月 2015
+ 2月 2015
+ 1月 2015
+ 12月 2014
+ 11月 2014
+ 10月 2014
+ 9月 2014
+ 8月 2014
+ 7月 2014
+ 6月 2014
+ 5月 2014
+ 4月 2014
+ 3月 2014
+ 2月 2014
+ 1月 2014
+ 12月 2013
+ 11月 2013
+ 10月 2013
+ 9月 2013
+ 8月 2013
+ 7月 2013
+ 6月 2013
+ 5月 2013
+ 4月 2013
+ 3月 2013
+ 2月 2013
+ 1月 2013
+ 12月 2012
+ 11月 2012
+ 10月 2012
+ 9月 2012
+ 8月 2012
+ 7月 2012
+ 6月 2012
+ 5月 2012
+ 4月 2012
+ 3月 2012
+ 2月 2012
+ 1月 2012
+ 12月 2011
+ 11月 2011
+ 10月 2011
+ 9月 2011
+ 8月 2011
+ 7月 2011
+ 6月 2011
+ 5月 2011
+ 4月 2011
+ 3月 2011
+ 2月 2011
+ 1月 2011
+ 12月 2010
+ 11月 2010
+ 10月 2010
フォロー
カテゴリー
日常
1 記事

Androidでゲーム作り

パーマリンクby Dixq (管理人) on 2012年1月22日(日) 02:21

ゲーム要素が無いなんてうちの館じゃない!
ってことで、SurfaceViewを使った小さなサンプルを作ろうとして始めたのに何故かガチで作りたくなってしまったDixqです、こんばんは。

今朝から作り始めてまぁなんとか遊べるものにはなったような、なっていないような。。。

加速度センサーを使ってイライラ某的なゲームを作りました。
素材は使わず全て標準の図形を描くメソッドのみで出来ています。

画像

灰色の壁は当たっても大丈夫。赤い壁は当たるとアウト。当たらずに緑のゴールを目指そうというゲームです。

1日で作ったようなものですが、apkファイル配布していますので、よろしければどうぞ

http://dixq.net/blog/Android/resQ_v1.01.apk

・戻るボタンでやり直し出来ます。
・ゆっくり壁に接触して止まると不具合がおきるかも。。。

難しかったのはボールが壁にあたると跳ね返ったり、傾けると障害物に当たりながらも低い方に流れていく処理。
とりあえず図形のパスと自機であたり判定計算して、パスのベクトルと自機の進行方向ベクトルから反射角計算して、反射させてるんですが、
速度が0だと反射しないので、壁に接触して止まった状態で傾けると低い方に動かないんですよね。。。

それと四角形の角にぶつかると刺さることがある。。。
計算しているパスのベクトルが角は2つあるからでしょうが、う~むなんかいい王道な計算方法あるんですかねぇ。。

実装したいい加減コードはこちら
http://dixq.net/blog/Android/resQ_v1.01.zip

クラス図
画像

ゲーム作るにはGL使わないとダメかなと思ってましたが、SurfaceViewでも十分ですね。
3D表示はできませんが。

※追記※
・縦固定西、横回転しないようにしました。
・画面のタイムアウトを無しにし、自動的にスリープにしないようにしました。

※追記2※
・Android1.6に対応したバージョンも作りました。
http://dixq.net/blog/Android/resQ_1.6_v1.02.apk
最後に編集したユーザー Dixq (管理人) [ 2012年1月28日(土) 02:12 ], 累計 3 回

コメント数: 13 閲覧数: 34513
コメント

Re: Androidでゲーム作り

パーマリンクby shiro4ao on 2012年1月22日(日) 02:51

おお、このゲームは!
昔Flashで似たのがあってずいぶんとはまっていました(^_^;)
しかし、1日とは・・・ とてつもない生産性ですね。
アバター
shiro4ao
 
記事: 224
登録日時: 2010年10月17日(日) 09:02
お住まい: 広島
日記: 日記を見る (22)

Re: Androidでゲーム作り

パーマリンクby gont on 2012年1月22日(日) 09:08

アプリとソースコードをダウンロードさせてもらいました。
いやぁ~、難しいっスね(笑)
20回ほどチャレンジしましたが、回転板の通路が鬼門ですね。
あとは灰色の壁にぶつかった反動で赤い壁にぶつかって自滅したり…(笑
途中、何度も横持ち縦持ち切り替えてやっていたら、画面の表示がおかしくなることがありました。
どうやら、ゲームスタート時のカウントダウンの時に持ち方を変えると発生するようです。

この間、本を一冊買ってその本に載っていたハエ叩きアプリを真似っこして作って遊んでみました。
OpenGLを使ったアプリでしたが、それを使わなくても、結構スイスイ動くんですね!

OpenGLは文字列を描画する際にテクスチャがどうのこうのという事だったので、うわぁ…と思っていたのですが、あまり激しく動かないゲーム(RPGとか?)ならOpenGL無しでも十分いけるかもしれませんね!
アバター
gont
 
記事: 1
登録日時: 2011年12月31日(土) 16:23
お住まい: 埼玉県
日記: 日記を見る (2)

Re: Androidでゲーム作り

パーマリンクby Dixq (管理人) on 2012年1月22日(日) 13:12

> shiro4aoさん

あ~ありましたね~。
最終段階に差し掛かった時、ものすごい爆音と共にグロイ画像が出てびっくりさせる最凶コンテンツもありましたね。。。
アバター
Dixq (管理人)
管理人
 
記事: 1535
登録日時: 2010年10月12日(火) 20:16
お住まい: 北海道札幌市
日記: 日記を見る (567)

Re: Androidでゲーム作り

パーマリンクby Dixq (管理人) on 2012年1月22日(日) 13:23

> qontさん

遊んで下さってありがとうございます^^
コメント頂いたことをv1.01で反映させました。
→横に持ち替えても、横表示にしないようにしました。
→画面のタイムアウトを無くし、スリープにならないようにしました。

ハエ叩きって、あの黒い本ですね。
オライリーのOpenGL ESの本が詳しいですよ。

SurfaceViewとGLSurfaceの実行速度の比較はまだやってないですが、そんなに変わらないんじゃないかと思ってます。
こちらに比較結果検証したデータがありますが、
http://android20092009.blog67.fc2.com/b ... ry-50.html
下手したらGLにすると遅くなる場合もあり、3Dを使わないならOpenGLESを使う理由はないんじゃないかと
最後に編集したユーザー Dixq (管理人) [ 2012年1月22日(日) 13:24 ], 累計 1 回
アバター
Dixq (管理人)
管理人
 
記事: 1535
登録日時: 2010年10月12日(火) 20:16
お住まい: 北海道札幌市
日記: 日記を見る (567)

Re: Androidでゲーム作り

パーマリンクby ISLe on 2012年1月22日(日) 15:47

壁の外側から内側に向けて当たったときだけ反射するようにすると、座標の補正やら角のめり込みやら面倒なことを省けます。
めり込む瞬間がありますけど気にならないレベルだと思います。
気になるようなら細かく動かす必要があります。

壁の法線ベクトルは線分の両端の座標のXとYを入れ替えるだけで求まります。
それと前回の座標から今回の座標に向けた移動ベクトルの内積をとると衝突する向きかどうかが分かります。

壁に接触すると止まるというのは重力加速度を加算してないのですかね。
センサーの傾きをそのまま加算しているみたいですけど、壁の接触面とステージの傾きを考慮して重力加速度を三次元に分解して加算する必要があります。

あとJavaではインデックスでループ回すと遅いのでリストにすると良いと思います。
ISLe
 
記事: 2586
登録日時: 2010年10月16日(土) 22:47
日記: 日記を見る (17)

Re: Androidでゲーム作り

パーマリンクby SAI on 2012年1月22日(日) 15:48

姉がアンドロイド携帯持ってたので借りてきました。
が。
インストールの方法がわからない・・・orz

もう解約したやつなので普通のやり方ではできないのでしょうか。
いろいろ調べると、PC→SD→携帯と呼び出す方法があるみたいで、やってみましたが
「パッケージの解析中に問題が発生しました」というエラーが出て開けませんでした。
無念・・・(´・ω・`)
Alea jacta est !
アバター
SAI
 
記事: 115
登録日時: 2010年10月24日(日) 12:26
お住まい: はひほーひ
日記: 日記を見る (247)

Re: Androidでゲーム作り

パーマリンクby ISLe on 2012年1月22日(日) 15:54

SAI さんが書きました:「パッケージの解析中に問題が発生しました」というエラーが出て開けませんでした。
無念・・・(´・ω・`)

提供元不明のアプリのインストール許可にチェックが入ってないのでは?
『設定』→『アプリケーション』→『提供元不明のアプリ』
ISLe
 
記事: 2586
登録日時: 2010年10月16日(土) 22:47
日記: 日記を見る (17)

Re: Androidでゲーム作り

パーマリンクby SAI on 2012年1月22日(日) 16:23

>ISLeさん
解決策ありがとうございます!
調べてみましたが、チェックが入ってました・・・。(´・ω・`)
Alea jacta est !
アバター
SAI
 
記事: 115
登録日時: 2010年10月24日(日) 12:26
お住まい: はひほーひ
日記: 日記を見る (247)

Re: Androidでゲーム作り

パーマリンクby lriki on 2012年1月22日(日) 21:43

私が初めて作ったAndroidでゲームと何となく似ててびっくりしましたw
こういうゲームって「Android使ってるぞーっ」ていう感じがシンプルに出てて好きです。



実行速度に関するお話がちょっと見えたので、気になったことを少し。

私がゲームを制作していたとき、いくつかの端末を学校の備品から借りることができたので
SurfaceViewを使って作ったゲームを走らせてみました。

モデルはXPERIAとGalaxy(詳しく確認しませんでしたが、多分1~半年前のもの)でしたが、
Galaxyではゲーム難易度に影響が出るレベルで処理落ちしてました。
(加速度センサーの感度もGalaxyの方が鈍かったです)

しばらくAndroidには触ってませんが、今 OpenGL ES にするとどうなのかなって思いました。


モデルもどんどん新しくなってるので古い情報かもしれませんけど、
こんなことがありましたよーということでコメントさせていただきました。
アバター
lriki
 
記事: 88
登録日時: 2010年12月25日(土) 15:15
日記: 日記を見る (16)

Re: Androidでゲーム作り

パーマリンクby Dixq (管理人) on 2012年1月28日(土) 02:18

>ISLeさん

なるほど、調べるベクトルを予め絞るのは手ですね。
ありがとうございます。

>壁の法線ベクトルは線分の両端の座標のXとYを入れ替えるだけで求まります。

これは目からうろこでした。。。
貴重な情報ありがとうございます。

>Javaではインデックスでループ回すと遅いのでリストにすると良いと思います。

そうですね、LinkedListの場合は特にiteratorを使うようにします。
アバター
Dixq (管理人)
管理人
 
記事: 1535
登録日時: 2010年10月12日(火) 20:16
お住まい: 北海道札幌市
日記: 日記を見る (567)

Re: Androidでゲーム作り

パーマリンクby Dixq (管理人) on 2012年1月28日(土) 02:19

>SAIさん

わざわざありがとうございます。
Android1.6で動くもの作りました!
アバター
Dixq (管理人)
管理人
 
記事: 1535
登録日時: 2010年10月12日(火) 20:16
お住まい: 北海道札幌市
日記: 日記を見る (567)

Re: Androidでゲーム作り

パーマリンクby Dixq (管理人) on 2012年1月28日(土) 02:21

>梨樹さん

お~そうですか。
センサー使うとAndroid使ってる感ありますよねw

端末のスペックはドンドン上がってますよね。
GL使わなくて済むなら使わない方が効率あがりますよね。。
アバター
Dixq (管理人)
管理人
 
記事: 1535
登録日時: 2010年10月12日(火) 20:16
お住まい: 北海道札幌市
日記: 日記を見る (567)

Re: Androidでゲーム作り

パーマリンクby SAI on 2012年1月28日(土) 23:16

うう~ダメでした(´;ω;`)
わざわざ違うバージョンも作っていただいたのに申し訳ない・・・。

同じエラーが出て開けませんでした。
ちなみにアンドロイドのバージョンは2.2.2です。
最後に編集したユーザー SAI [ 2012年1月28日(土) 23:17 ], 累計 1 回
Alea jacta est !
アバター
SAI
 
記事: 115
登録日時: 2010年10月24日(日) 12:26
お住まい: はひほーひ
日記: 日記を見る (247)

オンラインデータ

登録ユーザー: maru