質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
GPS

GPSは、Global Positioning Systemの略です。衛星信号を使用して受信機の地上又は空中内の居場所を特定するナビゲーションシステムです。"GPS"は受信機のことも指します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

2回答

3346閲覧

鬼ごっこアプリを制作しています、端末間通信の仕方がわかりません

per

総合スコア10

GPS

GPSは、Global Positioning Systemの略です。衛星信号を使用して受信機の地上又は空中内の居場所を特定するナビゲーションシステムです。"GPS"は受信機のことも指します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2016/10/26 19:34

編集2016/10/27 00:34

###前提・実現したいこと
学生でアプリ開発初心者です。
現在GPSを利用した鬼ごっこアプリを制作しています。
多人数で遊べ画面上に友達の位置が表示される鬼ごっこアプリです。

###発生している問題
・参加する友達の端末を認識させる方法
・各友達の端末の画面上に友達の位置情報を表示させたい
・サーバなどをawsやGAEなどで構築するのがいいのでしょうか。
###調査したこと・試したこと
・bluetoothで友達の端末を認知させようとしましたがうまくいきませんでした

###補足情報(言語/FW/ツール等のバージョンなど)
・Android studioで開発しています
・言語はjavaです

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takito

2016/10/27 01:31

質問タイトルは「端末間通信の仕方がわかりません」ですが、書かれている内容には問題が3つあがっています。回答が得られにくくなると思いますので、段階的に、また質問内容をもっと具体的にされてはいかがでしょうか。 ご自身で調べたことや試したコード、表示されているエラー、表示の変化などの情報も記載されているとより回答を得られやすいと思いますよ。 もし開発初心者であるなら初心者マークも付けた方がよいでしょう。
guest

回答2

0

ベストアンサー

鬼ごっこの範囲がいまいち想像できませんが、bluetoothだと距離が足りないような気もします。

以前、GPSを利用したもので同じようなものを作ったことがあります。
サーバー側に、サーバーのスペックや通信の太さ、遊ぶ人数にもよりますが、数秒に1回自分の情報をリクエストとして送り登録したあと、他プレイヤーの情報をレスポンスで返すAPIを用意すればよいのではないでしょうか。

例えばXMLだとして、

<players> <player> <playerInfo> <playerID> 0000132432 </playerID> <playerName> taro </playerName> </playerInfo> <position> <pointX> 132.55814169 </pointX> <pointY> 89.2845119 </pointY> </position> <gameInfo> <joinGameID> 132 </joinGameID> <gamePosition> 0 </gamePosition> </gameInfo> </player> <player> <playerInfo> <playerID> 0000132433 </playerID> <playerName> hanako </playerName> </playerInfo> <position> <pointX> 132.854844 </pointX> <pointY> 89.433254 </pointY> </position> <gameInfo> <joinGameID> 132 </joinGameID> <gamePosition> 0 </gamePosition> </gameInfo> </player> ・・・ </players>

を取得し手元の端末に他プレイヤーの位置を表示

<registMyInfo> <playerInfo> <playerID> 0000132431 </playerID> <playerName> takeshi </playerName> </playerInfo> <position> <pointX> 132.112546 </pointX> <pointY> 89.332547 </pointY> </position> <gameInfo> <joinGameID> 132 </joinGameID> <gamePosition> 1 </gamePosition> </gameInfo> </registMyInfo>

人数が多すぎるとトラフィックが多くなるのでレン鯖など利用するときは十分注意が必要です。

APIはこのサンプルリクエストのようなものをDBに登録しておき、データを引っ張ってくるときはwhere条件でjoinGameIDを指定、
playerIDでGroupByなどを行い、それぞれのプレイヤーの最新一件を取得し上記のようにXMLにして返すだけのAPIです。

もちろんゲームの開始終了、ゲームへの参加周りのGUIや処理も必要ですが、基本的にサーバーとのやり取りはそんな感じでよいのではないでしょうか。

投稿2016/10/27 01:34

s.t.

総合スコア2021

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

per

2016/10/27 05:01

回答ありがとうございます。 既存の鬼ごっこアプリを調査したところ、bluetoothで鬼ごっこの遊ぶグループに参加していたのでそれを使おうかなと考えていました。 丁寧な回答本当にありがとうございます。 レンタル鯖のおすすめなどあれば教えていただけたら幸いです。
s.t.

2016/10/27 05:28

とりあえず開発するのであればロリポップのライトプランで良いと思われますが、 実際アプリで遊び始めた時に人数が50人とか100人になるのであれば、レン鯖だと怒られるかもしれません。
per

2016/10/27 06:18

授業の課題で発表するものなのでそこまでの人数は想定していない形です。ロリポップのライトプラン試してみます。ご丁寧にありがとうございました。
guest

0

BLEのアドバタイズパケットを使い自分の位置を発信するとできそうですね。

実装は難しいですが、Android端末だけで解決できます。

投稿2016/10/27 03:55

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

per

2016/10/27 04:37

回答ありがとうございます。制作している友達と相談し検討してみます。 BLEのことなどわからないことだらけなので、まずそこから調べてみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問