アンドロイドアプリサンプルソース canvas描画&SQLite初級編 | ゲームアプリの攻略情報から人気のスマホサービス・アプリを特集して紹介 | スマホ情報は≪アンドロック≫

アンドロイドアプリサンプルソース canvas描画&SQLite初級編

[最終更新日]:2011/10/05

イントロダクション

AndRockアプリ『パズル「Match The Color」』の開発情報をご紹介します。
このアプリでは、表示にSurfaceViewとcanvasを使用して開発しています。
また、得点の保存にはsqliteを利用しています。
ここでは、canvasとsqliteの使い方を解説していきます。

パズル「Match The Color」

機能解説

画面上部の問題と解答を表す四角形は、canvasのdrawRectを使って描画しています。

問題描画部分
Paint paint = new Paint();
paint.setColor( Color.rgb( 
	(int)((255 / ( Config.COLOR_RANGE - 1 ) ) * question_color[ Config.COLOR_RED ]),
	(int)((255 / ( Config.COLOR_RANGE - 1 ) ) * question_color[ Config.COLOR_GREEN ]),
	(int)((255 / ( Config.COLOR_RANGE - 1 ) ) * question_color[ Config.COLOR_BLUE ]))
);

canvas.drawRect( x, y, x + width, y + height, paint );
解答描画部分
// 現在の色を表示
Paint paint = new Paint();
paint.setColor( Color.rgb(
	(int)((255 / ( Config.COLOR_RANGE - 1 ) ) * slider_color[ Config.COLOR_RED ]),
	(int)((255 / ( Config.COLOR_RANGE - 1 ) ) * slider_color[ Config.COLOR_GREEN ]),
	(int)((255 / ( Config.COLOR_RANGE - 1 ) ) * slider_color[ Config.COLOR_BLUE ]))
);

canvas.drawRect( color_box, paint );

三色の色は6段階で変化するようになっています。
この数値はConfig.javaでstaticな変数として宣言しています。

Config.javaでの定数指定
/** スライダーの段階数 */
public static final int		COLOR_RANGE		= 6;

本来は、この値を変更すれば試験管の表示も切り替わるようにしたかったのですが、
今回は時間の関係上、6段階固定での開発となりました。
各色各段階ごとに画像を用意し、切り替えています。
(ですので、定数として宣言する意味は無くなってしまいました)
ちなみに、各色6段階存在するので、色の種類は6×6×6=216種類となります。

問題をすべて解き終えたら、各問題を解くのにかかった時間を合計し、DBに保存します。

問題毎に、かかった時間を保存
/**
 * ラップタイムを記録する
 */
public void setLapTime()
{
	score[ now_lap ] = System.currentTimeMillis() - start_time;
	now_lap++;
}
最後にDBに保存
/**
 * トータルスコアをデータベースに記録します。
 */
public void saveScore()
{
	// トータルスコアを計算
	long total_time = 0l;
	for( int i = 0; i < Config.QUESTION_MAX; i++ )
	{
		total_time += (int)( score[ i ] / 10 ) * 10;
	}
	// スコアの記録
	this.temp_query.delete( 0, this.temp_query.length() ).append(
			"INSERT INTO D_Score( score ) VALUES( " + total_time + " )" );

	this.sdb.execSQL( this.temp_query.toString() );
}

こうして蓄積されたスコアの中から、もっとも優れたスコアを、
タイトル画面で取得して画面に表示しています。

DBからハイスコアを取得
// ハイスコアの取得
this.temp_query.delete( 0, this.temp_query.length() ).append(
		"SELECT score FROM D_Score ORDER BY score ASC LIMIT 1" );
this.temp_cursor = sdb.rawQuery( this.temp_query.toString(), null );

this.hiscore = 0;
if( this.temp_cursor.moveToFirst() )
{
	this.hiscore = this.temp_cursor.getInt( this.temp_cursor.getColumnIndex( "score" ) );
}
this.temp_cursor.close();

データベースの作成、初期化などの処理は、
長くなるのでここでは解説しません。
以下のようなサイトを参考にしていただければと思います。
Androidアプリのデータ保存方法の一つ「SQLite」の使い方 SQLiteOpenHelper編 (mucchinのAndroid戦記)

苦労話

アンドロイド端末は解像度もサイズも色々あるので、
それらに対応させるのが大変でした。

画像を扱っていると、たまに想定したサイズや位置からずれることがあり、
「何が原因なんだろう」と長時間悩んでしまったんですが、
よくよく調べてみるとアンドロイドの画像やサイズを自動調整する機能が働いてしまっているのが原因でした。

座標がそれほど重要ではないアプリなら便利な機能かもしれませんが、
ゲームのように座標を管理しなければならない場合は注意する必要がありそうですね。

裏話

◎グラフィック
当初、タイトル画面などはもっと適当に作った画像だったんですが、
社内の人に「デザインに統一感が無い」とダメ出しを受けて
今のデザインになりました。
グラフィックデザインって難しいです。

◎ゲームのヒント
同じ色に見えるのに正解にならない場合、
少ない色の量が間違っている可能性が高いです。
1段階上下に調整してみると、正解になるかもしれません。



あなたにオススメの記事

この記事を共有する

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

スマホ情報のAndRockを共有する



follow us in feedly


アンドロイド携帯向けアプリの人気ランキングページです。ビジネスに、遊びに、とてもお役立ちのアンドロイドアプリが勢ぞろい。どのアプリも人気のある「10個」です。厳選されたラインナップ。もしかしたらあなたの携帯ライフを劇的に変えるアプリも現れるかもしれません!日々変わるこのアプリのランキング動向を、ぜひチェックしてください。




人気・定番のアンドロイドアプリレビュー



スマートフォン、アンドロイド、アプリの使い方を解説

LINE アプリの使い方 完全マニュアル(Android,iPhone)

6000万ダウンロードを突破した無料通話・チャットが使える神アプリLINEの使い方のまとめ


Viberの使い方、設定まとめ (Android , iPhone)

無料通話のできるViberの使い方から、初期設定、日本語化などなどのまとめ


Skypeの使い方、設定(Android , iPhone)

無料通話・無料チャットの定番Skypeの使い方まとめ


無料・おトク電話アプリ「050 plus」のまとめ

スマートフォンで月額を抑えたい人におススメのアプリ!「050 plus」の使い方を解説




ドラゴンボールZドッカンバトル攻略情報
ONE PIECE トレジャークルーズ攻略情報
LINE アプリの使い方 完全マニュアル(Android,iPhone)
インスタグラム完全使い方ガイド
iPhone説明書
LINEで絶対使いたいLINEスタンプ検索

アプリ人気ランキング

Androidアプリ
iPhone/iOSアプリ

1
Coke ON (コークオン) Coke ON (コークオン)

自販機で買ってスタンプを溜めよう!

3
ラクサス(ブランドバッグ◆レンタルし放題◆) ラクサス(ブランドバッグ◆レンタルし放題◆)

憧れだった高級人気バッグがあなたのものに

4
ワンダーオラクル ワンダーオラクル

戦姫を蘇らせて戦うRTS

5
中古車カーセンサーnet 中古車カーセンサーnet

豊富な絞り込み条件で簡単中古車検索


▼アンドロイドアプリのランキング

新着スマホ情報


▼アプリ・記事の新着一覧へ

LINEで使えるオススメのスタンプアプリ まとめ20選

スマホアプリ カテゴリ一覧

スマートフォンサイト
QR-code AndRock(アンドロック)は、スマートフォンでもご利用いただけます。 QRコードスキャナーで読み取ってご利用ください。
Follow Us