首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的太空入侵者克隆的问题

我的太空入侵者克隆的问题
EN

Stack Overflow用户
提问于 2012-04-04 03:21:05
回答 1查看 260关注 0票数 0

我一直在通过制作一个太空入侵者克隆来锻炼我的技能。两天前我问了一个问题,这个问题已经解决了,我取得了很大的进步。我已经设法让一切正常工作,拼接,声音,游戏资产管理和移动等

除了入侵者只能从我的数组中的索引0(最左边的入侵者)在每一行进行射击之外,一切都很正常。代码位于从game1.cs的第344行开始的区域中。

入侵者也移动得很好。它们击中屏幕的边缘并向下移动像素,然后继续向相反的方向移动。然而,如果我摧毁最外面的入侵者,游戏仍然会识别死亡的入侵者。

因此,游戏突然告诉屏幕中央的入侵者向下,并向相反的方向。它让游戏更有动感,但这不是我想要的效果。用于移动的代码位于同一位置,从game1.cs中的第344行开始

源代码可以从这里下载:http://db.tt/1AodUfdS

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-04 03:33:25

在大多数情况下,第一个入侵者射击的原因是您每次都创建一个新的Random对象。这将使用系统时间进行初始化。因此,在循环中,大多数随机数都是相等的(因为系统时间几乎相等)。取而代之的是在游戏开始时创建一个随机对象。

对于第二个问题:您总是使用第一个(索引0)和最后一个(索引10)侵入者来确定行是否应该改变方向。相反,请使用可见的第一个/最后一个入侵者:

代码语言:javascript
运行
复制
var LeftMost  = Type1Invaders.Where(i => i.invaderVis).FirstOrDefault();
var RightMost = Type1Invaders.Where(i => i.invaderVis).LastOrDefault();

有了这些,你就可以继续你的测试。如果结果为null,则该行为空。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9999941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档