我最近一直在玩弄HaxeFlixel,并且在尝试制作一个真正简单的游戏时,遇到了以下错误:
source/PlayState.hx:10: characters 7-16 : Class not found : GameLogic
现在,这不是我第一次尝试编程游戏或其他任何事情,但是我不知道为什么会出现此错误。对于初学者来说,GameLogic甚至不是一个类,而是一个包。当我尝试从GameLogic包中导入我的基本Player类时,出现错误。
我的基本玩家班:
package GameLogic;
import flixel.FlxSprite;
import flixel.util.FlxColor;
class Player extends FlxSprite {
public function new(X:Float=0, Y:Float=0) {
super(X, Y);
makeGraphic(32, 32, FlxColor.WHITE);
}
}
引发异常的位置:
import GameLogic.Player;
class PlayState extends FlxState{
private var p:Player;
override public function create():Void{
p = new Player(20, 20);
add(p);
super.create();
}
我的[相关]目录结构:
| src
| | GameLogic
| | | Player.hx
| | PlayState.hx
正如Haxe的文档所述:
包名称中路径的每个部分都必须以小写字母开头,并且像所有类型一样,包中的类型名称必须以大写字母开头。因此,My.Pack和my.Pack都是无效的程序包。同样,my.pack.e也不是有效的类型名称或导入
您必须gameLogic
用小写字母命名您的包裹,G
才能将其识别为正确的包裹名称。最新文档中的相关部分阅读起来稍微复杂一些,但是从本质上讲,这个问题的含义是相同的:
定义:模块
所有Haxe代码都组织在模块中,这些模块使用路径进行寻址。本质上,每个.hx文件代表一个模块,其中可能包含几种类型。类型可以是私有的,在这种情况下,只有其包含的模块可以访问它。
在设计上,模块及其同名包含类型的区别是模糊的。实际上,寻址haxe.ds.StringMap可以视为haxe.ds.StringMap.StringMap的简写。后一个版本包括四个部分:
- 软件包haxe.ds
- 模块名称StringMap
- 类型名称StringMap
- 类型参数Int
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句