作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个非常基本的 HTML5 游戏,但我似乎无法让碰撞检测正常工作。当子弹与敌人碰撞时,子弹被设置为事件变量设置为 false,这意味着它不会被绘制并且不会用于碰撞检测,但看起来仍然如此。这是我的碰撞检测方法
//Collision detection between bullet and enemy
for (var j = 0; j < enemies.length; j++ )
{
for (var i = 0; i < bullets.length; i++ )
{
if( pointInRect( bullets[i].xPos, bullets[i].yPos, enemies[j].xPos, enemies[j].yPos, 32, 32 ) && ( bullets[i].alive == true ) )
{
bullets[i].alive = false;
enemies[j].xPos = -100;
}
}
}
但是当它有时与敌人相撞时,只有有时子弹才会继续。谁能看到问题吗?如果需要,我可以提供更多代码。
Canvas
最佳答案
创建项目符号时。它使用了有人在 stackoverflow 上帮助我使用的回收系统。但我们忘记对第一次创建进行检查,这是代码
for (var i = 0; i < bullets.length; i++ )
{
if ( ! bullets[i].alive && ! bulletDone )
{
bulletDone = true;
bullets[i] = new Bullet( player.xPos + 14, player.yPos);
console.log( "Bullet created" );
}
}
if ( ! bulletDone )
{
bullets[bullets.length] = new Bullet( player.xPos + 14, player.yPos);
console.log( "Bullet created" );
}
基本上就是这条线
if ( ! bullets[i].alive && ! bulletDone )
是
if ( ! bullets[i].alive)
因此,即使子弹没有生命,它仍然会创建一个新子弹,然后产生两个子弹。
关于javascript - 对象在与其他对象发生碰撞之前不会被移除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17869131/
我正在做一个项目,我的 android 在这个项目中作为一个网络服务器工作;输入带端口号的 IP 地址,打开 Web 界面,用户可以将文件上传到手机。我想在 Web 界面上显示一些图片,以便我们的界面
我是一名优秀的程序员,十分优秀!