C#游戏《飞机大战》错误总结之timer中的循环调用
来源:互联网 发布:eu域名 编辑:程序博客网 时间:2024/06/05 15:49
问题描述:设置一个timer,在timer中调用碰撞检测方法,方法里面有一个循环,检测。但由于没有加break,导致出现bug。编辑器错误描述是:
访问集合时索引越界。
public void PZJC() { // #region 判断玩家的子弹是否打到了敌人 for(int i=0;i<listHeroZiDan.Count;i++) { for (int j = 0; j < listPlaneEnemy.Count; j++) { if (listHeroZiDan[i].GetRectangle().IntersectsWith(listPlaneEnemy[j].GetRectangle())) { //SingleObject.GetSingle().RemoveGameObject(listPlaneEnemy[j]); //SingleObject.GetSingle().RemoveGameObject(listHeroZiDan[i]); listHeroZiDan.Remove(listHeroZiDan[i]); listPlaneEnemy.Remove(listPlaneEnemy[j]); break;//注意加break,退出循环,不加会导致前两个可以正常销毁,但后面的就不行了 //在timer中,都会调用 } }}}private void timerBG_Tick(object sender, EventArgs e) { //每50毫秒就重绘制 this.Invalidate(); int PlaneNum = SingleObject.GetSingle().listPlaneEnemy.Count; if (PlaneNum < 3) InitialPlaneEnemy(); SingleObject.GetSingle().PZJC(); }
原因尚待探寻0 0
- C#游戏《飞机大战》错误总结之timer中的循环调用
- C#游戏《飞机大战》开发中的错误
- C#游戏《飞机大战》开发之重点总结
- C#《飞机大战》游戏开发之细节总结
- unity之飞机大战总结
- 线程游戏-飞机大战
- 飞机大战游戏
- java飞机大战游戏
- 飞机大战游戏实现
- 游戏-飞机大战 (微信版)
- 游戏 飞机大战 c++
- java游戏-飞机大战
- 飞机大战总结
- 飞机大战总结
- 飞机大战中的算法
- cocos2dx游戏项目之飞机大战1 目录
- [Unity3D]Unity3D游戏开发之飞机大战项目讲解
- Android游戏之仿 微信飞机大战
- junit(单元测试)
- 10分钟搞定kettle源码部署
- PL/SQL程序(一)
- 练习题(视频中习题)
- Java引用传递和值传递
- C#游戏《飞机大战》错误总结之timer中的循环调用
- su: Authentication failure
- Java程序命令行参数使用以及参数最多个数测试
- 笔记(I/O重定向)4-3
- 如何将elf(二进制)固件编译进内核
- Array对象的基本方法
- Merge Two BST
- Apache2.4.x与Apache2.2.x的一些区别
- C++如何实现任意类型的数据交换