2016-09-27 54 views
1

我正在運行Haxe Introduction,我希望組織我的源文件夾。到目前爲止,我只是將一些繼承示例放在一個文件夾中。在HaxeFlixel中創建一個有組織的源文件夾

我的問題是我得到一個type not found錯誤,不允許我運行我的代碼。我究竟做錯了什麼?

我有構成這樣的文件夾:

  • 源/繼承

在該文件夾中,我有:

  • Animal.hx
  • Dog.hx
  • Cat.hx

Cat.hx

package; 

// package inheritance; 

class Cat extends Animal{ 
    public function new(name:String, speed:Float, height:Float, weight:Float, legs:Int):Void { 
     super(name, speed, height, weight, legs); 
    } 

    public override function Speak():String { 
     return ("Meow"); 
    } 
}  

Animal.hx

package inheritance; 

class Animal { 
    private var name:String; 
    private var speed:Float; 
    private var height:Float; 
    private var weight:Float; 
    private var legs:Int; 

    private function new(name:String, speed:Float, height:Float, weight:Float, legs:Int):Void { 
     this.name = name; 
     this.speed = speed; 
     this.height = height; 
     this.weight = weight; 
     this.legs = legs; 
    } 

    private function toString():String { 
     return ("\nName: " + name + "\nSpeed: " + speed + " mph\nHeight: " + height + " inches\nWeight: " + weight + " lbs\nLegs: " + legs); 
    } 

    private function Speak():String { 
     return ("Needs to fill out"); 
    } 
} 

Main.hx

package; 
// package inheritance; //Tried both and neither work 
// import inheritance; //Tried both and neither work 

import flixel.FlxG; 
import flixel.FlxSprite; 
import flixel.FlxState; 
import flixel.text.FlxText; 
import flixel.ui.FlxButton; 
import flixel.math.FlxMath; 

class MenuState extends FlxState 
{ 
    private var x:Int; 
    private var myPoint:Point; 
    private var myPoint3D:Point3; 
    private var myDog:Dog; 
    private var myCat:Cat; 

    override public function create():Void 
    { 
     myPoint = new Point(7,0); 
     myPoint3D = new Point3(7,6,0); 
     myDog = new Dog("Dog", 10, 12, 15, 4); 
     myCat = new Cat("Cat", 12, 7, 6, 4); 
     trace(myCat); 
     trace(myCat.Speak()); 
     super.create(); 
    } 

    override public function update(elapsed:Float):Void 
    { 
     super.update(elapsed); 
    } 

    private function changeMe(?x:Int) { 
     this.x = x; 
    } 
} 
+1

我看不出有什麼問題...? – Gama11

+0

@ Gama11對不起,我認爲這是顯而易見的。我的軟件包似乎無法正確導入。 – Funlamb

回答

2

通過大量的其他民族代碼細算我發現我的錯誤。原來我需要在我的Main.hx中導入這個類。

Main.hx

package; 
import inheritance.*; // This is what was missing 
import inheritance.Dog; //Can be used if you only want one file 
import inheritance.Cat; //Can be used if you only want one file 

class MenuState extends FlxState 
{ 
    private var x:Int; 
    private var myPoint:Point; 
    private var myPoint3D:Point3; 
    private var myDog:Dog; 
    private var myCat:Cat; 
... 
相關問題