智慧型手機時代已經到來了,手機的效能正在以你我驚訝的速度提公升。那麼手機遊戲也在迅速發展,從簡單的平面單機遊戲不斷的向複雜的3d網路遊戲發展。所以,手機遊戲的市場肯定也在不斷擴張。那麼,作為程式猿,我們也不能落後,要與時俱進,才不會被淘汰。android是眼下最火的手機平台,那麼我們選擇android平台開發肯定沒錯。今天我們就帶著大家一步步攻克android手機遊戲。其實,這一切都沒有那麼難,一切都是自我設限。好吧,那就一起行動起來吧!
我打算陸續的把遊戲中用到的技術點和我的一些體會發布到這裡,不會一下子全部羅列出來,那樣會增加大家的學習負擔。今天,我們將討論遊戲的基礎儲備。
其實,遊戲有很多分類,在此我就不囉嗦了,baidu搜尋就有答案。我最終以大戰飛機(雷電)遊戲為實現目標和講解案例。我不採用任何的遊戲引擎,全部以android原生態的功能來實現。
關於遊戲開發要掌握的一些基礎:
1、座標系
android系統中,螢幕的座標原點(0,0)跟電腦螢幕的一樣,在螢幕的左上角,橫向代表x軸,向右延生為正方向,縱向代表y軸,向下延生為正方向,如下圖:
2、螢幕的寬度和高度
為了能讓遊戲角色顯示在螢幕的合適位置,我們需要知道螢幕的寬度和高度作為參考。在android獲取螢幕的高寬很簡單,只需要在activity中獲取windowmanager物件,然後從windowmanager物件中獲取display物件,再從display物件中獲取高寬,**如下:
windowmanager windowmanager = getwindowmanager();
display display = windowmanager.getdefaultdisplay();
int screenwidth = display.getwidth();
int screenheight = display.getheight();
3、邊界問題
幾乎所有的遊戲都需要做邊界判斷,比如我們要實現的飛機大戰,我們需要判斷玩家、敵人和子彈等檢視的邊界是否超過螢幕,或者他們之間有沒有發生碰撞。簡單來說就是判斷有沒有超出螢幕的邊界,或者遊戲角色之間有沒有重疊,一般都是通過座標(x,y)來判斷的。
1) 如果x<0,那麼超過了螢幕的左邊界,如果x>螢幕的寬度,那麼超過的螢幕的右邊界。
2) 如果y<0,那麼超過了螢幕的上邊界,如果y>螢幕的高度,那麼超過了螢幕的下邊界。
4、角色或場景的移動
遊戲中的角色移動其實也是簡單的,就是不斷的改變角色的x,y座標的值,然後不斷重新把他們繪製到螢幕裡,只是這個動作的非常快,以至於人的眼睛是無法分辨。但是,這種角色座標改變的邏輯是需要我們程式猿按照遊戲的邏輯的來控制的。常常會使用到執行緒的知識點,不過也很簡單。
1) 如果向左移動:x 的座標減小,向右移動:x 的座標增大;
2) 如果向上移動:y 的座標減小,想下移動:y 的座標增大;
這一講我們就講這些,下一講我們將開始android中關於遊戲的幾個重類,以及實現文字、影象和背景的繪製,最後讓他們動起來。
敬請期待吧!!!
try redis 快速入門 一
redis 作為 key value 儲存,常常被當做nosql使用。key value 儲存的本質就是,通過key能夠保持value的值。如果能夠唯一確認key,能夠稍後取出value的值。set就是用來儲存值的。set server name weiyw redis會永久儲存我們的資料。所以我們...
Pytorch 快速入門(一)
pytorch是facebook 的 ai 研究團隊發布了乙個基於 python的科學計算包,旨在服務兩類場合 乙個提供了高度靈活性和效率的深度學習實驗性平台 匯入pytorch的包import torchjupyter notebook 現在,pytorch看起來真的像乙個框架了,而純tensor...
HttpClient快速入門(一)
基本例子 public class quickstarttest finally 測試通過 響應物件保留底層http連線,允許響應內容直接從網路套接 socket 字流式傳輸。為了確保正確釋放系統資源,使用者必須從finally子句呼叫closeablehttpresponse.close 方法。請...