日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

碰撞球小游戏开发总结

發布時間:2024/3/26 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 碰撞球小游戏开发总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?最近有空的時候自己用java開發了一個小游戲,也算是彌補自己對這方面的空白。其實游戲開發中考慮的東西大部分都一樣,比如碰撞檢測,背景位移,計分,生命值計算等。在開發碰撞球的過程中,對android中的SurfaceViewRectRectF有了進一層的認識。

預覽圖

?

?

?

1.基本組成:

?游戲比較簡單,主要角色對象分為三類,如下圖所示,Brike,Ball,Staff.

?

Brike:抽象類,因為需要存在兩種不同的磚塊,它們既存在相同的屬性值,也存在不同的方法與屬性。RedBrike(紅磚)WhiteBrike(白磚);

?

Ball:為運動時的球。

?

Staff:為以下接球的桿

?

BG:使用SurfaceView繪制的背景

?

?

2:技術點

?

1.圖像位移

游戲制作過程中,如果讓圖片動起來是一件很重要的事情。其實主要是依靠二點,一個是SurfaceView的不停繪制,一個是動畫本身對象坐標值的改變.例如在上述中,如何讓我們的球動起來,這里我們在Ball類中存在一個方法,

public?void?fly()?{

float?tempX?=?x?+?velocity_x;

float?tempY?=?y?+?velocity_y;

if?(needfly(tempX,?tempY))?{

x?=?tempX;

y?=?tempY;

float?v?=?(float)?Math.sqrt(velocity_x?*?velocity_x?+?velocity_y

*?velocity_y);

bmpIndexf?=?bmpIndexf?+?Constant.K?*?v;

bmpIndex?=?(int)?(bmpIndexf)?%?ballpics.length

}

}

在主視圖中啟動一個循環線程來執行上述動作,然后SurfaceView去繪制,自然就達到了移動的效果,背景移動也是一樣,通過更改背景繪制坐標值來達到背景移動的目的。

?

?2.碰撞檢測

?

游戲中,我們常常需要處理2個物體中間的碰撞事件,例如我要制作一款飛機大戰的游戲,如何才能知道飛出去的子彈擊中了敵軍的對象呢??在游戲中,我對球與磚與桿的碰撞檢測是使用RectF與Rect來完成的。Ball中的x,y軸坐標值為圓心點的坐標值,碰撞檢測的時候,是用(x+r,y),(x-r,y),(x,y+r),(x,y-r)與Staff或者Brike中的RectF對象來比對,如果Recf.contans(Point)?為true的話,我們可以認為兩者存在碰撞的事件。

?

3.矩陣

Matrix?m1?=?new?Matrix();//?平移矩陣

m1.setTranslate(x?+?Constant.X_OFFSET,?y?+?Constant.Y_OFFSET);

Matrix?m2?=?new?Matrix();//?旋轉矩陣

m2.setRotate(angel,?rotateX,?rotateY);

Matrix?mz?=?new?Matrix();//?綜合矩陣

mz.setConcat(m1,?m2);

?這里處理的意思,在于球的角度變化,一旦存在碰撞的事件,那么球則以(180-angel)的方式反射出去。



4.關卡設計

????主繪制類中定義失敗與勝利的方法,在Ball碰撞檢測中判斷,如果當前Ball的生命值為0,并且Ball的個數為0。則判斷失敗,如果Brike集合為0,則進入下一關,只需將所有的Brike集合充值即可,至于如何設計關卡難度,當然是見仁見智了。

?

游戲還存在一些問題,比如使用canvas繪制的時候,有時候對象會丟失canvas對象。一個簡單的游戲基本上包含上述元素,安卓中使用Java來做游戲的效果并不理想,不過用來學習SurfaceView的使用還是蠻不錯的。


下面給出源碼(可以直接運行)。

http://download.csdn.net/detail/zjfengdou30/8207195


總結

以上是生活随笔為你收集整理的碰撞球小游戏开发总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。