使用Web技術克隆Pokémon Go的開源專案
這個開源遊戲專案是克隆目前最火手遊Pokémon Go,使用Mapbox作為地圖, Pokéapi作為Pokémon資料和精靈,使用Pusher處理傳送位置定位給所有玩家。
使用Mapbox作為地圖是因為它有一個很完美的Javascript庫包元件,使用Mapbox GL能很容易透過圖片和一些座標將精靈加入地圖:
這將建立了圖片疊加到地圖上,然後加入一個事件處理器以便觸發情態視窗開始戰鬥。
關於位置定位,需要所有玩家在同樣位置看到相同的Pokemon,這時Pusher就非常適合,能夠使用它傳送同樣事件給所有玩家。
最後是Pokemon資料,pokeapi非常簡單令人驚奇,是所有Pokemon資料的RESTful API。下面是呼叫程式碼:
更詳細說明見:Building A Pokémon GO Clone Using Web Technologies And Pusher
專案地址:
使用Mapbox作為地圖是因為它有一個很完美的Javascript庫包元件,使用Mapbox GL能很容易透過圖片和一些座標將精靈加入地圖:
var marker = new mapboxgl.Marker(createSprite(data)) .setLngLat(data.coordinates) .addTo(map); <p class="indent"> |
這將建立了圖片疊加到地圖上,然後加入一個事件處理器以便觸發情態視窗開始戰鬥。
const modal = document.getElementById('modal'); document.querySelector('body').addEventListener('click', show); function show(event) { if(event.target.classList.contains('pokemon')) { currentSprite = event.target; currentSprite.dataset.currenthp = currentSprite.dataset.hp; modal.querySelector('.modal-image').src = event.target.src; modal.querySelector('.modal-name').innerHTML = event.target.dataset.name; modal.querySelector('.modal-current-hp').style.width = '100%'; modal.querySelector('.modal-current-hp').style.backgroundColor = '#39e239'; modal.querySelector('.modal-attack').innerText = 'ATTACK!!!'; modal.querySelector('.types').innerText = currentSprite.dataset.types; modal.classList.remove('hide'); } } <p class="indent"> |
關於位置定位,需要所有玩家在同樣位置看到相同的Pokemon,這時Pusher就非常適合,能夠使用它傳送同樣事件給所有玩家。
最後是Pokemon資料,pokeapi非常簡單令人驚奇,是所有Pokemon資料的RESTful API。下面是呼叫程式碼:
fetch(`http://pokeapi.co/api/v2/pokemon/${pokemonId}/`) .then(res => { return res.json(); }) .then(pokemon => { const data = { id: pokemonId, name: pokemon.name, sprite: `https://pokeapi.co/media/sprites/pokemon/${pokemonId}.png`, coordinates: [lng, lat], expires: parseInt((new Date()).getTime() + duration, 10), hp: pokemon.stats.find(stat => stat.stat.name === 'hp').base_stat, types: pokemon.types.map(type => type.type.name[0] + type.type.name.substring(1)) } pusher.trigger(bounds, 'encounter', data); }); <p class="indent"> |
更詳細說明見:Building A Pokémon GO Clone Using Web Technologies And Pusher
專案地址:
相關文章
- Pokémon Go火爆全球,廣告人能學到什麼?Go
- 這幾款AR遊戲比Pokémon GO還要好玩?遊戲Go
- 我們能從Pokémon GO中學到什麼Go
- SurveyMonkey:Pokémon Go使用者留存率行業平均水平的兩倍Go行業
- 研究發現 Pokémon GO 健身效應並不長久Go
- 一個使用Go語言和現代Web技術構建跨平臺桌面應用程式開源專案GoWeb
- Pokémon Go大紅大紫背後的看點與啟示Go
- Pokémon Shellcode 載入器
- Survey Monkey:Pokémon Go成美國史上日活躍使用者最多的手機遊戲Go遊戲
- 口袋妖怪Pokémon GO遷移到谷歌Kubernetes容器雲Go谷歌
- 心理學解讀:只有膚淺的人才會沉迷 Pokémon GOGo
- Pokémon Go智慧運動鞋:穿上它你真的低調不起來Go
- WEB實戰:使用MERN技術棧開發專案Web
- 《Pokémon GO》五年了,下一個爆款AR手遊在哪兒?Go
- 蘋果:2016年十款最佳遊戲 Pokémon GO意外落榜蘋果遊戲Go
- IOS技術分享| anyLive 開源專案iOS
- go web 專案開發部署GoWeb
- 類 Pokémon Go 的 AR 應用會改變人們的交通習慣嗎?Go
- 《Pokémon GO》火爆 拉動攜帶式電池銷量翻一倍Go
- #開源專案#wechat-go 微信機器人/web協議Go機器人Web協議
- 如何用java技術快速開發web service專案JavaWeb
- GitHub上優秀的Go開源專案GithubGo
- GitHub 上優秀的 Go 開源專案GithubGo
- IOS技術分享| ARCallPlus 開源專案(二)iOS
- IOS技術分享| ARCallPlus 開源專案(一)iOS
- 站在巨人的肩上,利用開源專案提高你的技術水平
- CF1937 E Pokémon Arena 題解
- 瘋狂的Web應用開源專案Web
- Go優秀開源專案推薦Go
- 克隆專案
- 開源專案年度盛會 OpenHarmony技術日來了
- 基於開源專案搭建屬於自己的技術堆疊
- JavaPoet 開源專案使用Java
- 如何參與翻譯開源專案技術文件?來 Breword
- Vue開源專案使用探索Vue
- web專案技術必備-------jQuery快速入門WebjQuery
- 有哪些值得學習的 Go 語言開源專案?Go
- 『只有膚淺的人才會沉迷 Pokémon GO』今日資料行業日報(2016.07.21)Go行業