游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1769|回复: 3

我想请教一些游戏中的简单算法

[复制链接]

2

主题

5

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2004-11-24 12:11:00 | 显示全部楼层 |阅读模式
很多游戏中都会有许多类的实例,比如即时策略里的一个小兵,假设这些兵都是一个兵类的实例,他的行为就是类的方法,那么游戏中那么多兵,难道为每个兵开个线程?兵之间的通信又怎么办?我是这样想的,把这些实例放入队列,然后不停的循环调用他的成员函数,比如Run(),这样每个兵的所在坐标都不停改变,然后用一个函数去接受每个实例发出的消息,再分配到消息的接收者,比如一个兵对某个兵攻击,那么另一个兵应该处于被攻击状态等等,如果是这样的话,CPU将会不停运转,显然玩游戏的时候不会使CPU处于满负荷状态,那么应该怎么做呢?
还想请教一下关于游戏算法的一些书籍,多谢各位前辈了! [em24]

8

主题

109

帖子

127

积分

注册会员

Rank: 2

积分
127
发表于 2004-11-24 17:51:00 | 显示全部楼层

Re:我想请教一些游戏中的简单算法

前辈不敢当,给你些建议吧:
刚开始做些小的游戏,方块,弹球等等。
单线程足够了,就算多线程,也不至于每个小兵开线程。而且多线程复杂一些,不适合入门时搞。
即时策略太复杂,再想个小点的游戏做起来,推荐俄罗斯方块。
一本很好的书:windows游戏编程大师技巧,建议买一本慢慢读。他的光盘还带有很多有用的东东,包括正版的vc6,哈哈。
希望对你有用。

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2004-11-24 21:01:00 | 显示全部楼层

Re:我想请教一些游戏中的简单算法

一般是个士兵的类的数组(或是相似数据结构),然后在运行时遍历每个数组元素,判断其状态,然后根据其状态改变一些东西,比如如果判断这个士兵已经进入了死亡状态,应该让他有倒地、流血等动作,则应该设置这个士兵的死亡的变量为TRUE,然后调用其死亡处理函数,这样每次循环,如果这个士兵进入死亡状态,则一直调用其死亡的函数,不断改变其状态(如:倒地、流血等),直到其彻底死亡,再从数组中删除这个士兵。我想这个方法我最有印象的是C&C、红警之类的游戏,当你造了很多的士兵时,就会感觉机器很慢,说明那个循环的工作量太大了。

2

主题

5

帖子

13

积分

新手上路

Rank: 1

积分
13
 楼主| 发表于 2004-11-26 14:18:00 | 显示全部楼层

多谢指点

那么是不是大多数游戏都用这类办法?我使用的是笔记本,很少再上面玩游戏,偶尔下了个连连看,发觉里面的倒计时系统好像就是这样不听重复判断,因为笔记本在cpu负荷时会启动风扇,所以整个游戏过程中风扇不停,但是有些游戏同样需要倒计时,但不至于使cpu满负荷(从任务管理器上得知),那么两者算法构造的区别是什么,现在的新游戏,如魔兽什么得,还是不是这种情况呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-23 10:31

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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