声明其他类向符号的移动

尼古拉斯·伦德奎斯特(Niclas Lundqvist)

这是我第一次在这里发布:)

我在项目(游戏开始)中创建了三个类,并且对AS3还是很陌生。

首先,我创建了一个名为player wich的类,其中应包含ball_A的运动。然后,我创建了一个名为“敌人至极”的类,其中应包含ball_B的运动。

在我的主类中,我创建了对玩家和敌人类的引用,并尝试根据我的玩家类分配给ball_A.x和ball_A.y坐标,对敌人类也是如此。

这是我的主班。

package  
{
import flash.display.*;
import flash.events.*;
import flash.ui.Keyboard;

public class Main extends MovieClip
{
    public var playerClass:player;
    public var enemyClass:enemy;



    public function Main()
    {
        playerClass = new player();
        enemyClass = new enemy();
        addChild(playerClass);
        addChild(enemyClass);

        ball_A.x = playerClass.ball_A_x;
        ball_A.y = playerClass.ball_A_y;

        ball_B.x = enemyClass.ball_B_x;
        ball_B.y = enemyClass.ball_B_y;



    }//Public function

}// Class

}// Package

这是我的球员课:

    package  {
import flash.display.*;
import flash.events.*;
import flash.ui.Keyboard;


public class player extends MovieClip
{

    var leftIsPressed:Boolean = false;
    var rightIsPressed:Boolean = false;
    var upIsPressed:Boolean = false;
    var downIsPressed:Boolean = false;
    var spaceIsPressed:Boolean = false;
    var rightCtrlIsPressed:Boolean = false;
    var speed:Number = 15;
    var vx:Number = 0;
    var vy:Number = 0;
    var ball_A_x:int = 0;
    var ball_A_y:int = 0;




    public function player() 
    {
        this.addEventListener(Event.ADDED_TO_STAGE, initialize);
    }

        private function initialize(e:Event):void 
        {
            //EventListeners
            this.removeEventListener(Event.ADDED_TO_STAGE, initialize);
            stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
            stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
            stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);

        }




        //Functions

        function keyDownHandler(e:KeyboardEvent):void 
        {
            switch(e.keyCode) 
            {
                case Keyboard.LEFT : leftIsPressed = true; break;
                case Keyboard.RIGHT : rightIsPressed = true; break;
                case Keyboard.UP : upIsPressed = true; break;
                case Keyboard.DOWN : downIsPressed = true; break;
                case e.keyCode = 163 : rightCtrlIsPressed = true; break;

            }

        }

        function keyUpHandler(e:KeyboardEvent):void 
        {
            switch(e.keyCode)
            {
                case Keyboard.LEFT : leftIsPressed = false; break;
                case Keyboard.RIGHT : rightIsPressed = false; break;
                case Keyboard.UP : upIsPressed = false; break;
                case Keyboard.DOWN : downIsPressed = false; break;
                case e.keyCode = 163 :  rightCtrlIsPressed = false; break;
            }

        }

        function enterFrameHandler(e:Event):void 
        {
            vx = -int(leftIsPressed)*speed + int(rightIsPressed)*speed;
            vy = -int(upIsPressed)*speed + int(downIsPressed)*speed;

                ball_A_x += vx;
                ball_A_y += vy;

                if(ball_A_x >= 530)
                {
                    ball_A_x = 0;
                }
                else if(ball_A_x <= 0)
                {
                    ball_A_x = 530;
                }
                if(ball_A_y >= 370)
                {
                    ball_A_y = -28;
                }
                else if(ball_A_y <= -28)
                {
                    ball_A_y = 370;
                }

        }


    //}//Public function


}//Class
}//Package

我要使.fla夹中的两个符号连接到我的主要班级,同时具有玩家班级和敌人班级的功能。(因为代码基本相同,所以没有显示敌人)

但是,当我尝试使用此代码时,出现以下错误:TypeError:错误#1009:无法访问空对象引用的属性或方法。在Main()的player()处

我认为这是因为我的事件监听器没有返回任何内容,因为它们是无效的。我如何解决这个问题而不必在一个类中编写所有的移动命令?

抱歉,如果我的英语不是很好,或者我在输入此代码时做错了什么。.这是我第一次在这里发布,所以我很乐意接受任何批评

Moosefetcher

我认为问题在于,在将Player添加到舞台之前,您是指Player中的“舞台”。实际上,Player永远不会添加到舞台上,因此,Player永远都无法访问舞台。在“主要”中,将“玩家”和“敌人”添加到场景中:

addChild(playerClass);
addChild(enemyClass);

在Player和Enemy类的构造函数中,添加:

this.addEventListener(Event.ADDED_TO_STAGE, initialize);

private function initialize(e:Event):void {
this.removeEventListener(Event.ADDED_TO_STAGE, initialize);
... other event listeners here, now that Player is on stage
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Azure移动应用中向经过身份验证的用户添加其他声明

来自分类Dev

在Azure移动应用中向经过身份验证的用户添加其他声明

来自分类Dev

从其他页面/类移动 MainWindow

来自分类Dev

从其他类向类动态添加静态函数

来自分类Dev

修改其他类中声明的对象的最佳方法(Java)

来自分类Dev

向Jenkins Workflow类路径添加其他库

来自分类Dev

C ++嵌套类-将实现移动到其他文件

来自分类Dev

查找所有类声明,而不是使用Roslyn继承其他类声明

来自分类Dev

是否可以在其他文件中的其他类主体内创建类而不是 C# 中的声明?

来自分类Dev

typedef类的前向声明

来自分类Dev

typedef类的前向声明

来自分类Dev

从其他类声明类类型变量会导致 C2143 错误(在 '*" 之前缺少 ';' )

来自分类Dev

Unity |将游戏对象移离正在向其移动的其他游戏对象

来自分类Dev

向其他容器添加边距时的导航栏移动

来自分类Dev

Bootstrap 3向“推送” div中添加内容会移动其他元素

来自分类Dev

错误:未声明其他(

来自分类Dev

如果其他声明灾难

来自分类Dev

其他声明不适用

来自分类Dev

“?” Dart或其他语言的符号

来自分类Dev

类中的C ++前向声明类

来自分类Dev

blazor页面模型局部声明中如何使用其他基类?

来自分类Dev

在ApiAuthorizationDbContext <TUser>类中声明其他实体时出现问题

来自分类Dev

我可以在其他类的main内部使用声明和分配的变量吗?

来自分类Dev

您如何在as3中的其他类中引用符号?

来自分类Dev

我可以在其他类中使用已声明的对象,而无需再次声明该对象吗?

来自分类Dev

如何在AngularJS中向元素添加类并向其他同胞移除

来自分类Dev

宏伟的弹出式窗口-向iframe添加其他类

来自分类Dev

JavaFX-如何从其他类向与StringProperty绑定的TextArea添加ChangeListener

来自分类Dev

向Yii2 jui datepicker添加其他CSS类

Related 相关文章

  1. 1

    在Azure移动应用中向经过身份验证的用户添加其他声明

  2. 2

    在Azure移动应用中向经过身份验证的用户添加其他声明

  3. 3

    从其他页面/类移动 MainWindow

  4. 4

    从其他类向类动态添加静态函数

  5. 5

    修改其他类中声明的对象的最佳方法(Java)

  6. 6

    向Jenkins Workflow类路径添加其他库

  7. 7

    C ++嵌套类-将实现移动到其他文件

  8. 8

    查找所有类声明,而不是使用Roslyn继承其他类声明

  9. 9

    是否可以在其他文件中的其他类主体内创建类而不是 C# 中的声明?

  10. 10

    typedef类的前向声明

  11. 11

    typedef类的前向声明

  12. 12

    从其他类声明类类型变量会导致 C2143 错误(在 '*" 之前缺少 ';' )

  13. 13

    Unity |将游戏对象移离正在向其移动的其他游戏对象

  14. 14

    向其他容器添加边距时的导航栏移动

  15. 15

    Bootstrap 3向“推送” div中添加内容会移动其他元素

  16. 16

    错误:未声明其他(

  17. 17

    如果其他声明灾难

  18. 18

    其他声明不适用

  19. 19

    “?” Dart或其他语言的符号

  20. 20

    类中的C ++前向声明类

  21. 21

    blazor页面模型局部声明中如何使用其他基类?

  22. 22

    在ApiAuthorizationDbContext <TUser>类中声明其他实体时出现问题

  23. 23

    我可以在其他类的main内部使用声明和分配的变量吗?

  24. 24

    您如何在as3中的其他类中引用符号?

  25. 25

    我可以在其他类中使用已声明的对象,而无需再次声明该对象吗?

  26. 26

    如何在AngularJS中向元素添加类并向其他同胞移除

  27. 27

    宏伟的弹出式窗口-向iframe添加其他类

  28. 28

    JavaFX-如何从其他类向与StringProperty绑定的TextArea添加ChangeListener

  29. 29

    向Yii2 jui datepicker添加其他CSS类

热门标签

归档