More Related Content
PDF
PDF
PDF
PPTX
PDF
Android Lecture #04 @PRO&BSC Inc. PDF
HoloLensハンズオン:AirTap & SpatialMapping編 PDF
「釣り★スタ」でのCocos2d-JSを使ってのアプリアップデート事例 (2) PDF
Viewers also liked
PPTX
Karolingide%20impeeriumi%20lagunemine DOCX
La relacion mente cerebro en la filosofía moderna PPTX
Techniczna organizacja zespołu cz 2 PDF
эффективное продвижение неигровых приложений PPTX
GIMP pantallazo lehenengoa PPT
PPS
DOC
PDF
PDF
Basic Electrical Engineering May 2011 DOCX
PPT
Produce and record short dialogues PPTX
Lavori svolti by Maurizio Putaggio Similar to 日本Androidの会のハンズオンセミナー資料(20130315)
PDF
PDF
PDF
PDF
Google for モバイル アプリ 15-00- maps apiで、かしこく地図アプリを開発しよう PDF
Google Maps を使ったアプリを作ってみた PDF
Android Lecture #01 @PRO&BSC Inc. PDF
PDF
PDF
みゆっき☆Think#3 「androidに触ってみるよ!」 PDF
PDF
ODP
KEY
Google I/O 2012 and Android 4.1 KEY
Geo x html5 on MapsAPI three minutes cooking PDF
ODP
PDF
Google I/O 2013に行ったついでにラスベガス戦果報告 PDF
PPTX
「Windows 8 ストア アプリ開発 tips」 hokuriku.net vol.11 (2013年1月26日) PDF
日本Androidの会のハンズオンセミナー資料(20130315)
- 1.
START
CONTINUE
かぶしきがいしゃ SMART DEVICE TECHNOLOGIES
1
- 2.
START
CONTINUE
かぶしきがいしゃ SMART DEVICE TECHNOLOGIES
2
- 3.
- 4.
- 5.
- 6.
- 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
- 10.
- 11.
- 12.
Google Map V2の実装
GooglePlay servicesをダウンロードする
APIキーを取得する
Androidプロジェクトをつくる
マニフェストを設定する
地図を実装する
地図にスライム等を設置する
スライムをタッチした位置に移動させる
12
- 13.
Google Map V2の実装
GooglePlay servicesをダウンロードする
APIキーを取得する
Androidプロジェクトをつくる
マニフェストを設定する
地図を実装する
地図にスライム等を設置する
スライムをタッチした位置に移動させる
13
- 14.
- 15.
- 16.
Android SDK Manager
「Google Play servicesの最新版を
ダウンロードする」
16
- 17.
- 18.
☆Android-SDKをインス
トールした場所
Eclipse C:Androidandroid-sdk
「ルートディレクトリに以下を指定する」
/extras/google/google_play_services/libproject/google-
play-services_lib
18
- 19.
- 20.
- 21.
Google Map v2の実装
GooglePlay servicesをダウンロードする
APIキーを取得する
Androidプロジェクトをつくる
マニフェストを設定する
地図を実装する
地図にスライム等を設置する
スライムをタッチした位置に移動させる
21
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
Google Map v2の実装
GooglePlay servicesをダウンロードする
APIキーを取得する
Androidプロジェクトをつくる
マニフェストを設定する
地図を実装する
地図にスライム等を設置する
スライムをタッチした位置に移動させる
30
- 31.
- 32.
Google Map v2の実装
GooglePlay servicesをダウンロードする
APIキーを取得する
Androidプロジェクトをつくる
マニフェストを設定する
地図を実装する
地図にスライム等を設置する
スライムをタッチした位置に移動させる
32
- 33.
- 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
- 35.
- 36.
- 37.
Google Map v2の実装
GooglePlay servicesをダウンロードする
APIキーを取得する
Androidプロジェクトをつくる
マニフェストを設定する
地図を実装する
地図にスライム等を設置する
スライムをタッチした位置に移動させる
37
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 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
- 50.
- 51.
- 52.
Google Map v2の実装
GooglePlay servicesをダウンロードする
APIキーを取得する
Androidプロジェクトをつくる
マニフェストを設定する
地図を実装する
地図にスライム等を設置する
スライムをタッチした位置に移動させる
52
- 53.
- 54.
- 55.
- 56.
- 57.
- 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
- 60.
- 61.
- 62.
- 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
- 66.
- 67.
- 68.
Google Map v2の実装
GooglePlay servicesをダウンロードする
APIキーを取得する
Androidプロジェクトをつくる
マニフェストを設定する
地図を実装する
地図にスライムを設置する
スライムをタッチした位置に移動させる
68
- 69.
- 70.
- 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
- 75.
- 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
- 78.
- 79.
- 80.