我的仿真项目,请大家给点提示

deltforce 2004-11-22 03:32:55
我遇到一个仿真项目,和炮弹发射差不多。我可以坐出描述炮弹的类来,但要求间隔一段时间就要发射多发炮弹,每发炮弹消除前都要运算,这样就有几个问题想不通:
1、怎么动态的生成多个同类型的类的对象,并且可以定时的产生;//可以理解为多发炮弹的定时发射
2、怎么让这些对象在时间上基本上是同步运算?//多发炮弹的同时情况
3、满足条件后,需要杀死一个或多个对象?///炮弹该爆炸销毁了

谢谢
...全文
246 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
virtualfunction 2005-04-10
  • 打赏
  • 举报
回复
1、lonenomad(流浪汉)的说法简洁正确,除非有特殊要求,否则没必要写类对象;
2、把描述炮弹的参数组成一个结构(包含如:炮弹离膛时间、角度、初速度等)加入链表序列;
3、用一个定时器控制炮弹产生频率,每次一个,并将其加入链表;
4、用一个定时器控制刷新频率或走访链表的频率;当某个炮弹满足毁灭条件时,将对应描述结构从链表中删除。
commandconque 2005-04-10
  • 打赏
  • 举报
回复
如果一定需要使用类的话建议使用
CObList对象.他实际上就是一个链表,一个对象的链表.他的内部功能函数可以直接实现链表的功能,很方便的.
详细的使用可以参考MSDN
lonenomad 2005-04-10
  • 打赏
  • 举报
回复
楼主结贴的时候把半年来的利息也算上,不能让网友们等你等的那么苦吧。:)
ringphone 2005-04-10
  • 打赏
  • 举报
回复
这让我想起来跟即时战略游戏有点象,星际,魔兽不去说他,有人口限制。靠人海战术的红警,每一个兵种或战斗单位肯定是类而不是结构,人家是不定时产生不同的类对象,8人对战拉起坦克大战,只能是靠链表而不是线程,这个算法就有讲究了,估计CObList达不到这个速度,不过满足楼主的需求应该是没有问题。
lonenomad 2005-04-10
  • 打赏
  • 举报
回复
楼主强人啊。这贴快半年了,你还没忘啊。
danfeng 2005-04-09
  • 打赏
  • 举报
回复
to:Mackz(在相互)
--------------------------------------------------
一个炮弹类代表一个炮弹是有必要的,像“流浪汉”说的没意义,因为每个炮弹的坐标、速度等信息是需要单独保存的。
--------------------------------------------------
搞笑嘛~~~一个类用来做所有炮弹特征的抽象已经足以~~难道有1w个炮弹你要去创建1w个类 !?
还是你连类和对象的概念都搞混了哦~~~
后面的说法倒是没问题
danfeng 2005-04-09
  • 打赏
  • 举报
回复
我支持 lonenomad(流浪汉)的说法~~游戏里就是这么处理的~~
ringphone 2005-04-09
  • 打赏
  • 举报
回复
关键是同一时间最多有多少炮弹发射?如果不多的话就可以一个炮弹一个线程,炮弹类内部检测爆炸就销毁自己(delete this),这样可以一个线程定时产生炮弹对象而不用管对象的销毁。
如果多的话就要建链表保存并管理炮弹对象了.
woodwoodwood3 2005-04-09
  • 打赏
  • 举报
回复
面向对象中毒太深,真以为类就是萝卜、白菜这样的实体?
菜牛 2005-04-09
  • 打赏
  • 举报
回复
一个炮弹类代表一个炮弹是有必要的,像“流浪汉”说的没意义,因为每个炮弹的坐标、速度等信息是需要单独保存的。楼上说得很清楚了,用链表来保存是很合理的,处理的时候遍历一下。但是同步是不可能的,就算是多线程,也受到CPU的限制不可能同时处理多个炮弹。
MFC中,链表可以用CList、CObList等。
deltforce 2005-04-09
  • 打赏
  • 举报
回复
楼上能讲的清楚些吧用什么
loveghb 2004-11-25
  • 打赏
  • 举报
回复
一个链表,每次都循环一下,新的加进去,不要的删掉。
完全的同步不太可能。
alphakiller 2004-11-25
  • 打赏
  • 举报
回复
用对象数组试试
lonenomad 2004-11-25
  • 打赏
  • 举报
回复
记住你的炮弹类代表的是一群炮弹的行为。
lonenomad 2004-11-25
  • 打赏
  • 举报
回复
写一个炮弹类,有一个成员,代表炮弹的数量
lonenomad 2004-11-25
  • 打赏
  • 举报
回复
没有听明白我的意思吗,写一个炮弹类不是一定要代表一发炮弹的啊,难道一个对象就一定代表一发炮弹吗?
zhaopeng3 2004-11-25
  • 打赏
  • 举报
回复
1. 用链表,每产生一个炮弹就往链表里插入
2. 把炮弹写成类,有自己的移动函数,构造时给它们初始位置,初始速度和初始加速度,每次刷屏时计算所有炮弹的位置.
3. 计算互相碰撞时的情况,该爆炸时找出爆炸范围内的物体,给它们伤害,从链表中删除该炮弹,该销毁时直接从链表中删除炮弹.
deltforce 2004-11-25
  • 打赏
  • 举报
回复
楼上怎么解决多个对象的问题?并且还有销毁对象的问题?
用结构数组么?
fallhunter 2004-11-24
  • 打赏
  • 举报
回复

每个炮弹是一个线程

顶时产生这个线程就行了
tovy 2004-11-24
  • 打赏
  • 举报
回复
up
加载更多回复(6)

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧