Beginning Android 2D Video Games

Android上で2Dゲーム作成を始めてみたい方へ

2013-01-01から1年間の記事一覧

参照:Intentを利用したデータ受け渡し

Activityによる画面遷移を行うIntentの仕組みでは,ファイルやデータベース(SQLite)などを介さず,データを受け渡す仕組みが用意されています.画面遷移時に渡すデータは,Intentクラスのオブジェクトを作成した後,setData()やsetExtra()を用いて,別画面に…

AndroidHttpdClientを利用したWebアクセス(POST/GET)

Androidアプリに何らかの配信機能やソーシャル機能,データの共有・リモート保存の機能を持たせる場合,最も合理的な1つの解決方法はWeb上に配置したアプリケーションを介すること,となります*1.Web(HTTPやHTTPS)を介したアプリケーションは,CGIによるP…

平面への衝突とその後の運動

ものとものが衝突する運動を考える場合,ぶつかる場所の状況によって,その時点より後の2つの物体の運動は大きな影響を受けます.一方の物体が他方に比べ非常に大きく,動かず,平らな面を持っている場合は,下図のように,衝突してきた物体のみが運動して…

放物(弾道)運動の表現

放物(ものを放り投げたような)運動は,初期状態の速度の方向と加速度の方向が異なり運動の開始後に物体に外から力が加わらないこと,を想定しています*1.2Dのゲームでは,1つの平面上における放物線を描くような運動を下図のように想定します. この運動…

物体の運動の表現をタッチによって開始する

単一の指による画面タッチで説明したように,画面のタッチイベントをonTouchEvent()で処理するとき,以下のようなアクションをひろっていきます. ACTION_DOWN:画面に触れたとき ACTION_MOVE:画面上を指でなぞっているとき ACTION_UP:画面から指が離れたとき…

落下運動の表現

等速運動の表現では,画面上をそれぞれに与えられた速さで動く物体(描画対象を)を表現しました. ところが,一般に,物体には加速度が加わっています. 運動する物体(例えば,乗物)上にいると,運動の方向と加速度の方向が一致しているときは,加速/減…

等速運動の表現

2Dゲームでは,画面上の物体の運動はすべてx座標とy座標で位置が決まる2次元の表現で表すことができます. また,Androidゲームアプリを作成しようとする場合,SurfaceViewを継承したカスタムビューを作成することで,フレームアニメーション中でこの座標を…

物体の運動(簡単な物理学)

物体の運動は,「力学」と呼ばれる物理学のひとつとして体系的に説明されています. ゲームで利用する運動は, 特に高度なパラメータを設定できる物理シミュレーション(物理モデル計算)については,物理計算エンジンなどと呼ばれる機能が備わったフレーム…

フレームアニメーション

フレームアニメーションは,画面全体を書き換えて,その中に描写されたものや人物に動きをつけていくアニメーションです. ごく簡単にいうと,パラパラ漫画などと同じで,少しずつ位置の異なるフレームを作成し,これを高速で書き換えることで動いているよう…

Androidゲームアプリ開発のための参考書籍

以下に,本ブログで参考にした書籍を上げます. Androidアプリ開発一般に役立つ書籍から,ゲーム開発に特化した書籍まで,なるべく最新のものを紹介したいと思います. Androidアプリ開発一般 初歩からわかるAndroid最新プログラミング作者: 安生真,柴田文彦…

Androidアプリ開発で参考になるサイト

以下に,本ブログでの説明やプログラムの作成で参考にさせて頂いたWebサイト(ブログなど)を紹介します. それぞれのサイトやブログ設置者の方によるものですので,存続については保証の限りではありません(リンクの維持管理はなるべく行うつもりでいます…

出力:Viewを使った画面表示

CanvasとPaintを使った描画 ViewやSurfaceViewによる描画では,CanvasというUIスレッドにあるオブジェクトに対して,Paintクラスに規定された各種の描画手段を用いて図形や画像を描画します. このとき,CanvasオブジェクトはUIスレッドに対して1つなので,…

出力:SurfaceViewを使った画面表示

SurfaceViewは,高速で描画領域を書き換えることを前提にしたViewであり,Canvasへの連続描画を行っても滑らかにアニメーションを表示することが可能となっています. このSurfaceViewを継承してカスタムビューを作成した場合は,Viewでのマルチスレッドによ…

出力:振動(バイブレーション)を用いる

スマートフォンの出力として,音(音声)・画面に匹敵するほど利用機会が多いものとして,振動の出力があります. 利用場面によっては,音の出せない状況があるため,振動の出力があることによって,利用者のアプリを利用する機会が大幅に増えることも期待で…

出力:WebViewを使う

WebViewは,WebKitを利用したフルブラウザ互換のViewです. Androidアプリとして,ゲームを含むソフトウェアの配布を行う際,あるいは,アプリの大半をWebアプリとして作成する場合などに利用します. Androidで利用できる各種センサ類を多用するゲームが主…

出力:音(効果音・BGM)を出力する

ゲームにおいて必要なコンテンツのに音楽(テーマ曲,挿入曲,BGM)と効果音(SE)があります. スマートフォンの利用場面では,イヤホンを付けるなど制約がありますが,家庭でのタブレット端末利用を想定するとAndroidゲームアプリでも音楽・効果音の必要であ…

参照:外部ストレージの利用

Androidアプリにおける「外部ストレージ」とは,一般にSDカード上のファイルシステムのことを指します. また,直接ファイルを読み書きする他に,SQLによるデータの入出力・参照が行えるSQLiteデータベースへアクセスすることも,アプリ側から見ると外部スト…

参照:内部ストレージの利用

Android SDKでは,Java標準のファイルアクセス機能をAndroidアプリ向けに使い易くしたいくつかのファイルアクセス手段が提供されています.Androidアプリは,apkファイルというアーカイブとして提供されますが,このときゲームに必要な画像や音声も一緒に提…

入力:位置情報サービスからの値の取得

Android端末で位置情報を取得するためには,GPSセンサから値を個別に取得するのではなく,位置情報サービスというひとまとまりのサービス機能から各種の値を得ることになります. 位置情報サービスから取得可能な値は,全て揃うとは限りませんが,以下のよう…

入力:加速度センサからの値取得

加速度センサは,Android端末に備わっているセンサ類の1つであり,多くの端末が採用しているセンサになっています. 加速度センサを利用したアプリケーションは,スマートフォンの最も特徴的な利用方法のひとつです. また,加速度センサを入力デバイスとし…

入力:タッチイベントの取得

Android端末が従来のPCと大きく異なる点の1つに,画面へのタッチを前提としたことがあります. さらに,Android 1.5以降では,マルチタッチと呼ばれる画面への複数の指でのタッチも可能となりました. Activityでタッチイベントを処理する場合は,OnTouchLi…

Menu(メニュー)キーの利用

Menuキーは,Android端末に用意された特殊なキー(ハードウェアのボタンまたは,ソフトウェアのボタン)であり,アプリ画面の下方に表示されるメニューを出す機能が割り当てられています. このキーが押されたとき,メニューには6個までのアイテム(項目)が…

Androidエミュレータと実行時の動作確認

EclipseでのSDKを利用したAndroidアプリ開発は,Javaでのソースコード記述から実行構成→実行,といった流れがありますが,その周辺には,以下のような作業が必要になります.準備段階で必要なことは,エミュレータの作成や実機の接続になります. エミュレー…

Eclipseで作成したAndroidアプリの実行

Eclipseで作成したActivityを継承したクラス(以降,単にActivity)を実行するためには,以下の手順を実行します. 準備 エミュレータの作成,または実機の接続 実行の構成を作成 実行時 エミュレータの起動,または実機の接続 実行の構成を選択 実行の確認 …

Androidアプリの基本

Android上で実行するゲームは,SDKで開発する限りAndoroidアプリの1つですので,まずはAndoroidアプリの実行を理解しておく必要があります. Androidアプリの基本単位は画面であるActivityを継承したクラス*1となりますが,このActivityは決まった状態遷移…

EclipseでのAndroidアプリの開発手順

はじめに EclipseのAndroidアプリケーションの開発は,ADT(Android Development Tool)をインストールした状態で行います*1.EclipseでのAndroidアプリケーションの作成は,おおきく下の2つから成り,複数のActivityをベースとした画面を作成していくことで…

アプリの入出力とゲーム

Androidアプリとしてのゲームも1つの計算機上のシステムとしてみた場合,入出力と参照するデータとを把握してから設計・開発を行っていくことになります.まず,Androidアプリとしての入力装置を見てみると,画面へのタッチ操作の他,各種センサを利用する…

ゲームの類型とAndroidアプリとしての構成

ゲームを作成しようとするとき,まず,ゲーム内容についてじっくりと考えること(=企画)が必要となります. 企画によって,ゲームはヒット作にもなれば,ク○ゲーの烙印を押されることにもなる,ということです. 企画段階では,ゲーム企画論や現在までに作…

Androidアプリ(GUI)の基本構成--記述用XMLファイルからみた場合

Androidアプリは複数のActivityから構成されますが,この構成を記述しているのがAndroidMafinest.xmlです. AndroidManifest.xml内でアプリケーションで用いる以下のような様々なことがらを記述します. 各画面(Activityを継承したクラス)のクラス名 Activ…

Androidアプリ(GUI)の基本構成--プログラムからみた場合

JavaによるSDKによるAndroidアプリ(以降,単にAndroidアプリ)は,一種のJavaによるGUIアプリケーションです.Androidアプリの各画面は,Activityというクラスを継承したクラスにViewやLayoutを継承したUI部品を張り付けていくことになります(下図参照).…