Flashdevelop As3 src\Enemy.as(28): col: 16 Error: Return value must be undefined. return false;
Flashdevelop As3 src\Enemy.as(28): col: 16 Error: Return value must be undefined. return false;
我目前正在为我的 uni 模块开发游戏,但似乎不知道如何解决这个问题。有人可以帮帮我吗?该游戏是一款 2D 平台游戏,当敌人的生命值 <=0 时,我试图让敌人消失,但是当我尝试测试游戏时收到这些错误消息。
D:\FlashDevelop\Projects\Assessment (游戏技巧)\src\Enemy.as(27): col: 16 错误: Return 值必须未定义。
return 真;
^
D:\FlashDevelop\Projects\Assessment (游戏技巧)\src\Enemy.as(28): col: 16 错误: Return 值必须未定义。
return 错误;
^
构建因错误而停止 (fcsh)。
这是我给敌人的代码:
package
{
import flash.display.MovieClip;
/**
* ...
* @author Umeer
*/
public class Enemy extends MovieClip
{
public var health:int = 100;
public function Enemy()
{
this.graphics.beginFill(0xFF1100, 1);
this.graphics.drawCircle(this.x, this.y, 25);
this.graphics.endFill();
}
public function CheckObj(obj:Player,bullets:Array):void
{
if (Math.abs(obj.x - x) < obj.width / 2 + width / 2 && Math.abs(obj.y - y) < obj.height / 2 + height / 2)
obj.health --;
for (var i:int = 0; i < bullets.length; i++)
{
if (Math.abs(bullets[i].x - x) < width / 2 && Math.abs(bullets[i].y - y) < height / 2)
health -= 50;
}
if (health <= 0)
return true;
return false;
}
}
}
您正在函数中使用 return false
,将 return 的值定义为 void
。
您应该将函数 CheckObj
的签名更改为:
public function CheckObj(obj:Player, bullets:Array):Boolean
我目前正在为我的 uni 模块开发游戏,但似乎不知道如何解决这个问题。有人可以帮帮我吗?该游戏是一款 2D 平台游戏,当敌人的生命值 <=0 时,我试图让敌人消失,但是当我尝试测试游戏时收到这些错误消息。 D:\FlashDevelop\Projects\Assessment (游戏技巧)\src\Enemy.as(27): col: 16 错误: Return 值必须未定义。 return 真; ^ D:\FlashDevelop\Projects\Assessment (游戏技巧)\src\Enemy.as(28): col: 16 错误: Return 值必须未定义。 return 错误; ^ 构建因错误而停止 (fcsh)。
这是我给敌人的代码:
package
{
import flash.display.MovieClip;
/**
* ...
* @author Umeer
*/
public class Enemy extends MovieClip
{
public var health:int = 100;
public function Enemy()
{
this.graphics.beginFill(0xFF1100, 1);
this.graphics.drawCircle(this.x, this.y, 25);
this.graphics.endFill();
}
public function CheckObj(obj:Player,bullets:Array):void
{
if (Math.abs(obj.x - x) < obj.width / 2 + width / 2 && Math.abs(obj.y - y) < obj.height / 2 + height / 2)
obj.health --;
for (var i:int = 0; i < bullets.length; i++)
{
if (Math.abs(bullets[i].x - x) < width / 2 && Math.abs(bullets[i].y - y) < height / 2)
health -= 50;
}
if (health <= 0)
return true;
return false;
}
}
}
您正在函数中使用 return false
,将 return 的值定义为 void
。
您应该将函数 CheckObj
的签名更改为:
public function CheckObj(obj:Player, bullets:Array):Boolean