首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不显示Nape主体

不显示Nape主体
EN

Stack Overflow用户
提问于 2014-08-12 09:55:10
回答 1查看 157关注 0票数 0

我把这两个人关在同一个班里。现在有Main.as和MainChar.as了

编译时不会显示任何错误,但也不会显示对象:c

这是我第一次将代码分割成不同的类。我只是想知道什么应该在英雄创作课和什么应该留在主要。

代码语言:javascript
复制
package 
{
    import flash.display.Sprite;
    import flash.events.Event;
    import nape.geom.Vec2;
    import nape.phys.Body;
    import nape.phys.BodyList;
    import nape.space.Space;

    import MainChar;

    public class Main extends Sprite
    {
        public var gravity:Number = 600;
        public var space:Space = new Space(new Vec2(0, gravity));   
        public var hero:MainChar = new MainChar();

        public function Main():void
        {
            hero.createMainCharacter(stage.stageWidth/2, stage.stageHeight/2, 50, 50);
            addEventListener(Event.ENTER_FRAME, update);
        }

        private function update(e:Event):void 
        {
            space.step(1 / stage.frameRate, 10, 10);
            var bodies:BodyList = space.bodies;
            for (var i:int = 0; i < bodies.length; i++) 
            {
                var body:Body=bodies.at(i);
                if (body.userData.sprite != null) 
                {
                    body.userData.sprite.x = body.position.x;
                    body.userData.sprite.y = body.position.y;
                    body.userData.sprite.rotation=(body.rotation*180/Math.PI)%360;
                }
            }
        }
    }
}

英雄创建者类:

代码语言:javascript
复制
package  
{
    import flash.display.Graphics;
    import flash.display.Sprite;
    import nape.geom.Vec2;
    import nape.phys.Body;
    import nape.phys.BodyType;
    import nape.shape.Polygon;
    import nape.space.Space;

    public class MainChar extends Sprite
    {
        public var space:Space = new Space(new Vec2(0, 600));

        public function MainChar():void 
        {
        } 

        public function createMainCharacter(x:Number, y:Number, width:Number, height:Number):void 
        {
            var mainChar:Body = new Body(BodyType.DYNAMIC);
            var mainCharShape:Polygon = new Polygon(Polygon.box(width, height));

            mainChar.shapes.add(mainCharShape);
            mainChar.position.setxy(x, y);
            mainChar.space = space;

            var mainCharSprite:Sprite = new Sprite();
                mainCharSprite.graphics.beginFill(0x000000);
                mainCharSprite.graphics.drawRect( -width/2, -height/2, width, height);
                mainCharSprite.graphics.endFill;
            addChild(mainCharSprite);

            mainChar.userData.sprite = mainCharSprite;
            addChild(mainChar.userData.sprite);
        }

    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-12 10:25:54

您需要将您的hero添加为您的Main sprite EG的子级:

代码语言:javascript
复制
  public function Main():void
  {
        hero.createMainCharacter(stage.stageWidth/2, stage.stageHeight/2, 50, 50);
        addEventListener(Event.ENTER_FRAME, update);
        addChild(hero);
  }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25261343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档