游戏开发论坛

 找回密码
 立即注册
搜索
查看: 10680|回复: 29

我的打飞机游戏的碰撞算法是不是很失败?

[复制链接]

211

主题

314

帖子

345

积分

中级会员

Rank: 3Rank: 3

积分
345
发表于 2004-8-8 00:52:00 | 显示全部楼层 |阅读模式
就是每个对象包括子弹都遍历场景中的所有对象,判断距离距离为0就判断为碰撞,这样的算法物体一多了就很占用CPU啊,现在打飞机游戏的碰撞算法一般是什么啊?不会是用个什么数组把 [em7]

8

主题

284

帖子

296

积分

中级会员

Rank: 3Rank: 3

积分
296
QQ
发表于 2004-8-8 08:23:00 | 显示全部楼层

Re:我的打飞机游戏的碰撞算法是不是很失败?

小游戏的计算量不会很大的,浪费一点也是无所谓的。

62

主题

296

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
QQ
发表于 2004-8-8 08:32:00 | 显示全部楼层

Re:我的打飞机游戏的碰撞算法是不是很失败?

可以采用图像的方式,根据战场的象素大小建立一块“图像”,把所有飞机用代表的ID写在图像上,子弹只要看所在的位置“图像”中的“象素”值为多少就可以判断了,我想可能这个比较快

28

主题

433

帖子

433

积分

中级会员

Rank: 3Rank: 3

积分
433
发表于 2004-8-8 09:18:00 | 显示全部楼层

Re:我的打飞机游戏的碰撞算法是不是很失败?

楼上的方法 更慢~~~
飞机游戏一般就是用 数组或链表 的~

碰撞 用的 是 区域 和 碰撞点~来判定~

62

主题

296

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
QQ
发表于 2004-8-8 09:23:00 | 显示全部楼层

Re:我的打飞机游戏的碰撞算法是不是很失败?

嘻嘻,当我没说过,瞎想的

0

主题

51

帖子

57

积分

注册会员

Rank: 2

积分
57
发表于 2004-8-8 13:39:00 | 显示全部楼层

Re:我的打飞机游戏的碰撞算法是不是很失败?

......

30

主题

398

帖子

403

积分

中级会员

Rank: 3Rank: 3

积分
403
QQ
发表于 2004-8-8 17:25:00 | 显示全部楼层

Re:我的打飞机游戏的碰撞算法是不是很失败?

我也想知道

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
发表于 2004-8-8 22:01:00 | 显示全部楼层

Re:我的打飞机游戏的碰撞算法是不是很失败?

我的一点想法,
假如让我做的话,我不会用对象来做子弹,因为对象太费资源了。
我写一个简单的粒子系统,每个子弹有一个结构,包括位置速度和方向几个数据成员或者加上威力值也要加上使敌方子弹还是己方,然后每次渲染根据时间更新子弹的位置。
粒子系统有一个接口是用来监听子弹的,需要监听子弹的类比如飞机什么的继承统一一个可以被击中的类,这个类有一个位置和大小的矩形数据,监听子弹时候提供需要监听的类型,比如我方子弹或者敌方或者对地对空子弹。更新子弹时候,会检查子弹位置是否在监听本类型子弹矩形内,如果再的话,向这个矩形的类传递子弹信息,并销毁子弹。被击中的类得到子弹后自己计算伤害值。

没试验过,也没做过着类型游戏,不知道可行否,不过我认为如果用类作子弹太浪费了。

17

主题

177

帖子

177

积分

注册会员

Rank: 2

积分
177
QQ
发表于 2004-8-8 22:16:00 | 显示全部楼层

Re: 我的打飞机游戏的碰撞算法是不是很失败?

那确实省资源
sf_200488221654.jpg

211

主题

314

帖子

345

积分

中级会员

Rank: 3Rank: 3

积分
345
 楼主| 发表于 2004-8-9 16:30:00 | 显示全部楼层

Re:我的打飞机游戏的碰撞算法是不是很失败?

不用对象做子弹就如同用C而不是C++编写游戏一样,如果不用对象做子弹,日后对子弹做出更高的要求的时候比如子弹加上会追踪,会判断对方的距离,会根据不通的敌人作出不同的动作的功能的时候你怎么扩展啊?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-16 13:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表