More Related Content
Similar to 日本Androidの会のハンズオンセミナー資料(20130315)
Similar to 日本Androidの会のハンズオンセミナー資料(20130315) (20)
日本Androidの会のハンズオンセミナー資料(20130315)
- 1. START
CONTINUE
かぶしきがいしゃ SMART DEVICE TECHNOLOGIES
1
- 2. START
CONTINUE
かぶしきがいしゃ SMART DEVICE TECHNOLOGIES
2
- 7. つっちー
せいべつ : おとこ
ちから : 10
しょくぎょう: ゆうしゃ 0
レベル:26
すばやさ : 21
たいりょく: 99
9
スキル かしこさ : 47
ANDROID
うんのよさ: 55
JQUERYery
PHP こうげき : 16
しゅび : 26
7
- 8. かんば
せいべつ : おとこ
ちから : 48
しょくぎょう: プログラマ
レベル:28 すばやさ : 21
たいりょく: 25
かしこさ : 99
9
スキル
ANDROID うんのよさ: 97
UNITY 3Dity
こうげき : 16
PHP
しゅび : 26
8
- 9. くし
せいべつ : おとこ
ちから : 0
しょくぎょう: プログラマ
レベル:36 すばやさ : 0
たいりょく: 0
かしこさ : 0
スキル うんのよさ: 99
ANDROID 9
IPHONEe
こうげき : 0
PHP
しゅび : 0
9
- 12. Google Map V2の実装
Google Play servicesをダウンロードする
APIキーを取得する
Androidプロジェクトをつくる
マニフェストを設定する
地図を実装する
地図にスライム等を設置する
スライムをタッチした位置に移動させる
12
- 13. Google Map V2の実装
Google Play servicesをダウンロードする
APIキーを取得する
Androidプロジェクトをつくる
マニフェストを設定する
地図を実装する
地図にスライム等を設置する
スライムをタッチした位置に移動させる
13
- 16. Android SDK Manager
「Google Play servicesの最新版を
ダウンロードする」
16
- 18. ☆Android-SDKをインス
トールした場所
Eclipse C:Androidandroid-sdk
「ルートディレクトリに以下を指定する」
/extras/google/google_play_services/libproject/google-
play-services_lib
18
- 21. Google Map v2の実装
Google Play servicesをダウンロードする
APIキーを取得する
Androidプロジェクトをつくる
マニフェストを設定する
地図を実装する
地図にスライム等を設置する
スライムをタッチした位置に移動させる
21
- 30. Google Map v2の実装
Google Play servicesをダウンロードする
APIキーを取得する
Androidプロジェクトをつくる
マニフェストを設定する
地図を実装する
地図にスライム等を設置する
スライムをタッチした位置に移動させる
30
- 32. Google Map v2の実装
Google Play servicesをダウンロードする
APIキーを取得する
Androidプロジェクトをつくる
マニフェストを設定する
地図を実装する
地図にスライム等を設置する
スライムをタッチした位置に移動させる
32
- 34. パッケージ名は、ご自分の環
AndroidManifest.xml 境に合わせてください。
<permission
android:name="jp.smartdt.movemap.permission.MAPS_RECEIVE"
android:protectionLevel="signature"></permission>
<uses-permission
android:name="jp.smartdt.movemap.permission.MAPS_RECEIVE"/>
<!-- Google API へのアクセス -->
<uses-permission
android:name="com.google.android.providers.gsf.permission.READ_GSERV
ICES" />
<!-- インターネットへのアクセス -->
<uses-permission android:name="android.permission.INTERNET" />
34
- 37. Google Map v2の実装
Google Play servicesをダウンロードする
APIキーを取得する
Androidプロジェクトをつくる
マニフェストを設定する
地図を実装する
地図にスライム等を設置する
スライムをタッチした位置に移動させる
37
- 46. MainActivity.java
地図にアクセスするための準備をしよう
/**
* 初期座標
*/
private static final LatLng START_POS = new LatLng(35.645185, 139.408532);
/**
* 地図
*/
private GoogleMap map;
/**
* カメラ
*/
private CameraUpdate camera;
/**
* マーカーを設置する設定
*/
private MarkerOptions markers;
46
- 47. MainActivity.java
/**
* XMLレイアウトのロード
*/
private void findView() {
// FragmentManagerのロード
final FragmentManager manager = getSupportFragmentManager();
// MapFragmentのロード
final SupportMapFragment frag = (SupportMapFragment)
manager.findFragmentById(R.id.map);
// Map内容のロード
map = frag.getMap();
}
47
- 48. MainActivity.java
/**
* 地図の設定
*/
private void setup() {
// カメラの基本的な設定をセット
final CameraPosition pos = new CameraPosition(START_POS,16, 0, 0);
// カメラにセット
camera = CameraUpdateFactory.newCameraPosition(pos);
// カメラの位置に移動
map.moveCamera(camera);
// マーカーの準備
markers = new MarkerOptions();
// マーカーの座標を決定
markers.position(START_POS);
// マーカーを追加
map.addMarker(markers);
}
48
- 49. MainActivity.java
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findView();
setup();
}
49
- 52. Google Map v2の実装
Google Play servicesをダウンロードする
APIキーを取得する
Androidプロジェクトをつくる
マニフェストを設定する
地図を実装する
地図にスライム等を設置する
スライムをタッチした位置に移動させる
52
- 58. MainActivity.java
/**
* 画面に描画されるキャラクター
*/
private Player player;
/**
* マップに描画するプレイヤー以外のオブジェクト
*/
private final ArrayList<GameObject> objects = new ArrayList<GameObject>();
58
- 59. MainActivity.java
/**
* 地図の設定
*/
private void setup() {
~ 省略 ~
// マーカーの座標を決定
markers.position(MainActivity.STRAT_POS);
// プレイヤー情報を設定
player = new
Player(MainActivity.this, R.drawable.slime,MainActivity.START_POS);
// マーカーの画像を決定
markers.icon(player.getIcon());
// マーカーを追加
map.addMarker(markers);
}
59
- 63. MainActivity.java
/**
* SDT座標
*/
private static final LatLng SDT_POS = new LatLng(35.710356,139.752034);
/**
* バックグラウンドからUIへ影響を与えるためのハンダラ
*/
private Handler handler;
63
- 64. MainActivity.java
/**
* プレイヤー以外のオブジェクトを描画するメソッド
*/
private void drawObject() {
for (final GameObject obj : objects) {
markers.icon(obj.getIcon());
markers.position(obj.getPos());
markers.title(obj.message.get(0));
map.addMarker(markers);
}
}
64
- 65. MainActivity.java
/**
* その他のデータをセット
*/
private void setup() {
~ ~ 省略 ~~
//ハンドラーを用意
handler = new Handler();
//お城を建てる
objects.add(new GameObject(R.drawable.castle, SDT_POS, "すまーとでばいすて
くのろじー へ ようこそ!"));
drawObject();
}
65
- 68. Google Map v2の実装
Google Play servicesをダウンロードする
APIキーを取得する
Androidプロジェクトをつくる
マニフェストを設定する
地図を実装する
地図にスライムを設置する
スライムをタッチした位置に移動させる
68
- 71. MainActivity.java
/**
* 1フレーム時間
*/
private final static int ONE_FRAME_TIME = 1000 / 60;
/**
* バックグラウンドで処理を行うためのスレッド
*/
private Thread thread;
71
- 72. MainActivity.java
/**
* 移動を行うメソッド
* @param end 移動先の緯度・経度
*/
private void move(final LatLng end) {
// 目的地と現在の縮尺を渡す
player.setEndPosition(end, map.getCameraPosition().zoom);
thread = new Thread(new Runnable() {
@Override
public void run() {
handler.post(new Runnable() {
@Override
public void run() {
//~ メソッドの中身は、次ページ ~
}
});
}
});
thread.start();
}
72
- 73. MainActivity.java
☆☆ runメソッド内に記載する ☆☆
while (player.isMoving()) {
long time = System.currentTimeMillis();
player.move();
markers.icon(player.getIcon());
// 前回までの描画を消去
map.clear();
// 画像の描画位置を決定
markers.position(player.getPosition());
// 画像を描画
map.addMarker(markers);
camera = CameraUpdateFactory.newLatLng(player.getPosition());
map.moveCamera(camera);
~ 次のページへつづく ~
73
- 74. MainActivity.java
// プレイヤー以外のオブジェクトを描画
drawObject();
// 規定時間内なら規定時間まで処理を中断する
time = System.currentTimeMillis() - time;
if (time < ONE_FRAME_TIME) {
try {
Thread.sleep(ONE_FRAME_TIME- time);
} catch (final InterruptedException e) {
e.printStackTrace();
}
} //end of if
}//end of while
74
- 76. MainActivity.java
/**
* イベントリスナーをセット
*/
private void setEventListener() {
map.setOnMapClickListener(new OnMapClickListener() {
@Override
public void onMapClick(final LatLng end) {
move(end);
}
});
}
76
- 77. MainActivity.java
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findView();
setup();
setEventListener();
}
77