Pokemon GO-O passo a passo para fazer o seu。 O artigo原始pode ser lido em:
如何建立Pokemon Go应用程式
Back4app提供了Parse服务器服务来照顾您的后端和API开发。 解析还提供基本的… docs.back4app.com
葡萄牙文:
Pokemon GO:o passo a passo para fazer o seu – Parte 01 –
宠物小精灵GO的礼物或礼物的复制品。 参数… imasters.com.br
宠物小精灵GO的礼物或礼物的复制品。 帕拉塔尔,乌拉圭回合的共产主义技术革命,乌拉圭回合动议。 最终完成复制或复制的通行证。
请立即删除您的应用程序,然后再继续! Inúmeras视线,是对射影作品进行反演的作品,在此作品中,作为作品的拍品,应该是对作品的证明。 徽标,系统要求的最新证明,全球范围内的产品质量证明书以及全球范围内的资格证明书。 就像是在世界范围内因革命而动用的天文学奖,也就是在世界范围内因使用革命性法律而产生的诉讼。
技术
从软件许可的角度来看,软件的许可是由软件许可的,但在软件方面的许可是由专业人士授予的。
Desta forma,乌拉圭回合动议,dérevolvimentodérevolvimentoglamurosas,masnãomenos重要,départédautilizaçãode plataformas dedecelençãode desenvolvimento。 就像音乐节一样,在后端和前端都进行了类似的设计。
BaaS —后端即服务: BaaSévisualizar uma ponte conectando后端概念和umaaplicação后端概念的一种综合形式。 简化了平台开发的辅助性应用程序,简化了API的开发(简化了网络应用程序)。 可以将后端的Inteiro或Intiro集成到API中,也可以将其作为应用中的mesmas或aplicações。
开发者手册:在多种应用程序,Android,iOS和Windows上的通用应用程序版本。
原型设计与设计:特殊许可的通用设计和原型设计,以及UM薄膜制造。
进步的过程
一种重要的方法论,是一种无需使用软件即可获得成功的技术方法。 作为软件原理和软件开发的标准方法 。 Ambassãoilustradas no diagrama abaixo。

一套降落瀑布软件,可以简化软件的开发。 现在出现的事件顺序是:(I)文献记录要求。 (II)设计(III)Codificação(IV)睾丸。 (V)同志。 (VI)Entrega做最终决赛。
消除革命的意识形态的方法论。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 完整和完整的合作伙伴关系书。 Figura abaixo ilustra este conceito:

可以在crop上进行crita tarefas和cronogramas的批处理,也可以在chamados Sprints上进行pequenos ciclos de desenvolvimento的拆分。 Cada Sprint代表了duraçãoespecíficaeentregáveissãoplanejados aoiníciode cada Sprint。 最终解决方案是在客户最终解决方案之后,在整个瀑布瀑布中进行。
预防,预防或改善精神病的方法预防和预防精神上的不适。 可以使用语音提示的瀑布式软件,可以在软件中完成声明,而不能在客户端上实现某种形式的软件,但可以在整个过程中对软件进行适当的修改。实现。 一种软件灵活性和通用性的方法论。 举例来说,可以使用抗微生物药和抗病毒药来启动一种利用医学,医学和医学的方法。 淡入淡出的通俗解释法,适用于重要的预案。
Criaçãodo Aplicativo
最终应用前端的后端虚拟化服务。前端的最终定制化处理。 Como estamos tratando de um游戏,这是uma premissa adotadaéque emp emsa que vai desenvolveréuma创业公司。 标志或过程标志的首选方法。
可以在计算机上使用definiçãodas ferramentastecnológicas。 O Frontend并在摄影比赛中使用了决赛。 没有可复制的应用程序,可从可视化的摄影机上获取更多信息,在Android,iOS和Windows等操作系统,操作系统和Windows上也可以进行操作。在Marvel App(www.marvelapp.com)和Invision(www.invisionapp.com)之间进行交互的设计和应用程序的设计。
原始设计,原始设计或制造,生产和销售手术前语言的通用版本。 例如,可以在Android和iOS设备上安装应用程序,也可以在其他地方使用。 Já代表了解体的交叉平台,允许使用通用和通用接口的应用程序,还可以使用Pod-se escrever ocódigoásépeaéséae dos ados的形式。 从某种意义上说,这是语言多样化的必要条件。 Xamarin网站(www.xamarin.com)上的超级平台。 Microsoft开源的一种Ferramenta软件。
后端 é 宠物小游戏GO代言人的总人数达到了80%,这是根据对地理定位的查询而提出的。 股份公司的公共服务平台,混合服务公司,银行业的医院,备份服务,环境评估公司和环境管理公司。 Plataformas como,Back4app — www.back4app.com e Parse — www.Parse.com玩游戏的模样可以制作口袋妖怪GO。
后端的Abaixoserádetalhado o passo。
Etapa 1-配置为Back4app e解析为Unity3d
访问:https://parse.com/docs/downloads

外观或下载执行Unity Blank Project(v1.7.0)。
https://drive.google.com/file/d/0B7k7pGQXUypGTWRqS1BqVDBWQUU/view?usp=共享参数o解析SDK参数Unity3d

Abra o Unity3d解析空白项目->自助升级。

替换Asset / Parse / Parse.Unity.dll。 可变资产/场景。 O iniciador(Parse Initializer)GameObjectteráalguns脚本faltando。 Adicione ParseInmealizeBehaviour ao mesmo。

创建游戏对象和脚本组件。

TestiParse.cs中的Adicione。


使用UnityEngine;
使用System.Collections;
使用解析;
使用System.Threading.Tasks;
公共类TestParse:MonoBehaviour {
//使用它进行初始化
无效的开始(){
ParseObject testObj =新的ParseObject(“ TestObject”);
testObj [“ a”] =“ HI”;
testObj [“ b”] =“ Back4app”;
任务saveTask = testObj.SaveAsync();
}
//每帧调用一次更新
无效更新(){
}
}
按下播放按钮或seu编辑器Unity3d。

可以在Back4app的基础上对Sucesso或fracasso进行检查。

确认自己已成功建立了基础。

Etapa 2 —集成Unity3d的Google Maps
Para gerar or terreno comoPokémon-可以整体集成Google Maps,也可以根据需要创建Unity3d。 Primeiro crie Plane e Name como Mapa e crie uma luz directec。

Segundo,脚本“ GoogleMap”和其他地图游戏。

使用UnityEngine;
使用System.Collections;
公共类GoogleMap:MonoBehaviour
{
公共枚举MapType
{
路线图
卫星,
地形,
杂种
}
公共布尔loadOnStart = true;
public bool autoLocateCenter = true;
公共GoogleMapLocationcenterLocation;
public int zoom = 13;
公共MapType mapType;
public int大小= 512;
public bool doubleResolution = false;
公开的GoogleMapMarker []标记;
公开的GoogleMapPath []路径;
无效Start(){
if(loadOnStart)Refresh();
}
公共无效Refresh(){
if(autoLocateCenter &&(markers.Length == 0 && path.Length == 0)){
Debug.LogError(“仅在使用路径或标记的情况下,Auto Center才起作用。”);
}
StartCoroutine(_Refresh());
}
IEnumerator _Refresh()
{
var url =“ http://maps.googleapis.com/maps/api/staticmap”;
var qs =“”;
如果(!autoLocateCenter){
如果(centerLocation.address!=“”)
qs + =“ center =” + WWW.UnEscapeURL(centerLocation.address);
其他{
qs + =“ center =” + WWW.UnEscapeURL(字符串。格式(“ {0},{1}”,centerLocation.latitude,centerLocation.longitude));
}
qs + =“&zoom =” + zoom.ToString();
}
qs + =“&size =” + WWW.UnEscapeURL(string.Format(“ {0} x {0}”,大小));
qs + =“&scale =” +(doubleResolution?“ 2”:“ 1”);
qs + =“&maptype =” + mapType.ToString().ToLower();
var usingSensor = false;
#if UNITY_IPHONE
usingSensor = Input.location.isEnabledByUser && Input.location.status == LocationServiceStatus.Running;
#万一
qs + =“&sensor =” +(usingSensor?“ true”:“ false”);
foreach(标记中的var i){
qs + =“&markers =” + string.Format(“ size:{0} | color:{1} | label:{2}”,i.size.ToString().ToLower(),i.color,i。标签);
foreach(i.locations中的var loc){
如果(loc.address!=“”)
qs + =“ |” + WWW.UnEscapeURL(loc.address);
其他
qs + =“ |” + WWW.UnEscapeURL(string.Format(“ {0},{1}”,loc.latitude,loc.longitude));
}
}
foreach(路径中的var i){
qs + =“&path =” + string.Format(“ weight:{0} | color:{1}”,i.weight,i.color);
if(i.fill)qs + =“ | fillcolor:” + i.fillColor;
foreach(i.locations中的var loc){
如果(loc.address!=“”)
qs + =“ |” + WWW.UnEscapeURL(loc.address);
其他
qs + =“ |” + WWW.UnEscapeURL(string.Format(“ {0},{1}”,loc.latitude,loc.longitude));
}
}
var req =新的WWW(url +“?” + qs);
收益率要求
GetComponent()。material.mainTexture = req.texture;
}
}
公共枚举GoogleMapColor
{
黑色,
棕色,
绿色,
紫色,
黄色,
蓝色,
灰色,
橙子,
红色,
白色
}
[System.Serializable]
公共类GoogleMapLocation
{
公共字符串地址;
公众持股纬度;
公众持股经度;
}
[System.Serializable]
公共类GoogleMapMarker
{
公共枚举GoogleMapMarkerSize
{
小,
小,
中
}
公共GoogleMapMarkerSize大小;
公开的GoogleMapColor颜色;
公共字符串标签;
公共GoogleMapLocation []位置;
}
[System.Serializable]
公共类GoogleMapPath
{
公共int权重= 5;
公开的GoogleMapColor颜色;
公共布尔填充=假;
公共GoogleMapColor fillColor;
公共GoogleMapLocation []位置;
Desmarque aopçãoAutoLocateCenter

在Google地图上对参参数字进行数字化。

在大多数情况下,您可以在Google Maps上找到最合适的本地化解决方案。 您可以在Google地图上查找本地地图。

Etapa 3:GPS和GPS集成器
Crie LocationManager的游戏对象和其他用户都可以使用GPS。另外,Google Maps可以使用GPS和Altera。
使用UnityEngine;
使用System.Collections;
使用UnityEngine.UI;
公共类LocationManager:MonoBehaviour {
公共GameObject地图;
公众持股量
公众持股;
漂浮lastlat,lastlon;
公共GameObject latText;
公共GameObject lonText;
//使用它进行初始化
无效的开始(){
Input.location.Start(); //启用移动设备GPS
地图= GameObject.FindGameObjectWithTag(“地图”);
如果(Input.location.isEnabledByUser){//如果启用了移动设备GPS
float lat = Input.location.lastData.latitude; //获取GPS数据
float lon = Input.location.lastData.longitude;
}
}
//每帧调用一次更新
无效更新(){
//
//如果(Input.location.isEnabledByUser){
// float lat = Input.location.lastData.latitude;
// float lon = Input.location.lastData.longitude;
// DebugConsole.Log(“ Lon:” + lon.ToString()+“ Lat:” + lat.ToString());
// if(lastlat!= lat || lastlon!= lon){
// map.GetComponent().centerLocation.latitude = lat;
// map.GetComponent().centerLocation.longitude = lon;
// latText.GetComponent().text =“ Lat” + lat.ToString();
// lonText.GetComponent().text =“ Lon” + lon.ToString();
// map.GetComponent().Refresh();
//}
// lastlat = lat;
// lastlon = lon;
//}
//
//
如果(lastlat!= lat || lastlon!= lon){
map.GetComponent().centerLocation.latitude = lat;
map.GetComponent().centerLocation.longitude = lon;
map.GetComponent().Refresh();
}
lastlat = lat;
lastlon = lon;
//
}
Google Maps novamente的外观。 Serábem sucedido在Google地图上显示的是符合GPS的印度地图。


Depois disso,有名人士和无名人士都是Google Maps。 (Para mim,eu coloquei o personagem em X:0 Y:0.07 Z:0)。 Adicione umabússolaao seu personagem quandovocêtestar o dispositivomóvel。

谷歌地图根据纬度和经度进行了验证。

Etapa 4:Gerando monstros no Mapa(Part A)
在世界上的任何一处,无论是经纬度还是纬度,它都可以正常运行。
与Google地图,Unity3d XYZ和é实现差异有关。
Para descobrir como calcular arelaçãoentre eles,precisamos de dadosfictícios。
准外国人:昏迷。
http://www.movable-type.co.uk/scripts/latlong.html
Primeiro de tudo,precisamos定义了纬度和经度的初始值,而没有Google Maps(语音地图)和defina os marcadores,没有Google Maps。

Pressione Run,请遵守Google Maps的规范。

观察:用于马卡多·帕拉塞尔姆·蒙斯特罗·波多黎各的肖像和纹理。 可以在游戏对象上进行分类,或者在对象上添加游戏对象。 GPS通讯服务提供商Parse,Mais Tarde,通讯社和通讯社向您发送消息。

Depois disso,这是criamos um cubo em cima da etiqueta。 严重事故。 阿戈拉(Agora),马刀(precisamos),军用GPS(GPS)和本地GPS(Marcador GPS)。 进度(37,38373,-122,0133)和marcador(37,384782,-122,012893)的脚本。

public static double DistanceBetweenPlaces(double lon1,double lat1,double lon2,double lat2)
{
浮点数R = 6371000; //米
double sLat1 = Math.Sin(deg2rad(lat1));
double sLat2 = Math.Sin(deg2rad(lat2));
double cLat1 = Math.Cos(deg2rad(lat1));
double cLat2 = Math.Cos(deg2rad(lat2));
double cLon = Math.Cos(deg2rad(lon1)-deg2rad(lon2));
double cosD = sLat1 * sLat2 + cLat1 * cLat2 * cLon;
double d = Math.Acos(cosD);
double dist = R * d;
返回dist;
}
E depois计算cub eo jogador的结构。 (-0.563,0.07,-1,915)E(0,0.07,0)。 Esteéumçálculosimples,请访问entãoeunãomostro comofazê-lo。 Depois disso,一个保留所有权利的权利
Relação=distânciamundo XYZ /distânciaexata。
Uma vez que temos estarelação,山峰上的山峰,山峰上的山峰,山峰上的山峰。 没有entanto,没有当地语言的人,也没有人见过nãotemos o rolamento entre或jogador eo monstro。
Para calcular o rolamento。 Podemos穿着EsteCódigo。
公用静态double BearingBetweenPlaces(double lon1,double lat1,double lon2,double lat2){
double y = Math.Sin(deg2rad(lon2)-deg2rad(lon1))* Math.Cos(deg2rad(lat2));
double x = Math.Cos(deg2rad(lat1))* Math.Sin(deg2rad(lat2))— Math.Sin(deg2rad(lat1))* Math.Cos(deg2rad(lat2))* Math.Cos(deg2rad(lon2) )— deg2rad(lon1));
双轴承= Math.Atan2(y,x);
回程轴承
}
Depois de obter arelaçãoeo rolamento,épossível转换器,经度Latitude para umacoordenaçãomundo XYZ,具有重要意义的经纬度,经度和纬度。
公共静态double [] convertXZ(double lon1,double lat1,double lon2,double lat2){
倍数比= 0.0162626572;
双轴承= BearingBetweenPlaces(lon1,lat1,lon2,lat2);
双倍距离= DistanceBetweenPlaces(lon1,lat1,lon2,lat2);
double x =数学正弦(-轴承)*距离*比率;
double z = -Math.Cos(轴承)*距离*比率;
Debug.Log(“ X” + x.ToString()+“ Z” + z.ToString());
double [] xz = {x,z};
返回xz;
}
Com ocódigoacima,sabemos as cordenadas XYZ corretas para desovar monstro。
Etapa 5:Gerando Monstros no Mapa(Part B)
转换后的经度和时间,转换后的经度和折旧率将在以后的日期中生效。

Insira a coluna:数据类型为Geopoint的位置。

Insira algum monstropróximoavocê。

Os monstrosfictíciosestãodefinidos,elesestãoesperando porvocêpara chamar。 输入MonsterSpawn GameObject com脚本生成。 彩色的LocationManager GameObject(GPS实用工具),由怪物创建。

Étrade trazer os dados do an monstrofictícioao seu programa。
无效的开始(){
monsterXZCoordination = new List ();
monsterLL = new List ();
var query = ParseObject.GetQuery(“ Monster”);
//您可以使用WhereWithinGeoBox或WhereNear或WhereWithinDistance来模拟pkmgo搜索范围
playerlon = locationManager.GetComponent ()。getLon();
playerlat = locationManager.GetComponent ()。getLat();
query.FindAsync().ContinueWith(t => {
IEnumerable 结果= t.Result;
foreach(结果中有var个结果){
ParseGeoPoint temp = result.Get (“位置”);
double [] tempxz = GeoDistance.convertXZ(playerlon,playerlat,temp.Longitude,temp.Latitude);
double [] trueLL = {temp.Longitude,temp.Latitude};
monsterLL.Add(trueLL);
monsterXZCoordination.Add(tempxz);
}
spawn = true;
});
}
将结果转换为数据点或将数据点转换为Lista的协同作用,以使XYZ正确化。 Depois de adicionar o resultado obtido,Spawn se torna verdade para allowir que o programa gere o monstro de objeto jogo。
无效更新(){
playerlon = locationManager.GetComponent ()。getLon();
playerlat = locationManager.GetComponent ().getLat();
DebugConsole.Log(locationManager.GetComponent ()。getLon()。ToString());
如果(spawn == true){
monsterSpawn();
}
如果(monster.Count!= 0){
如果(playerlon!= lastlon || playerlat!= lastlat){
updateMonstersPosition();
}
}
lastlat = playerlon;
lastlon = playerlat;
}
void monsterSpawn(){
DebugConsole.Log(“ HIHIHI”);
for(int i = 0; i <monsterXZCoordination.Count; i ++){
GameObject temp =实例化(m,作为游戏对象的新Vector3((float)monsterXZCoordination [i] [0],0.07f,(float)monsterXZCoordination [i] [1]),新四元数(0,0,0,0)) ;
DebugConsole.Log(temp.transform.position.ToString());
monster.Add(temp);
}
spawn = false;
}
void updateMonstersPosition(){
为(int i = 0; i <monster.Count; i ++){
double [] tempxz = GeoDistance.convertXZ(playerlon,playerlat,monsterLL [i] [0],monsterLL [i] [1]);
monster [i] .gameObject.transform.position = new Vector3((float)tempxz [0],0.07f,(float)tempxz [1]);
DebugConsole.Log(怪物[i] .gameObject.transform.position.ToString());
Aposs os Monstros serem gerados,GPS导航,jogador forem atualizados.Testes。 纬度和经度是正常的。


Ocálculoébastante preciso。 O monstro vaicontinual atualizando aposiçãocorreta quando o jogador se move。
seus dados, s4
onsterSpa s9
里斯/
里亚尔·阿尔格斯
lat <s <
ndFragment→ s-
英寸:
e colocarqu sz
pad s9%}
tyle =’mso-an so
Ø
s
风格
K4.st {}
arde,pori s/