Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 将多个对象链接到一个编码名称_Actionscript 3_Flash_Collision_Flash Cs6 - Fatal编程技术网

Actionscript 3 将多个对象链接到一个编码名称

Actionscript 3 将多个对象链接到一个编码名称,actionscript-3,flash,collision,flash-cs6,Actionscript 3,Flash,Collision,Flash Cs6,我正在尝试用Flash AS3制作一款rpg风格的游戏。我试图让我的角色在碰到诸如树木和建筑物之类的物体时停止。是否有一种方法可以将多个对象链接在一起,并使代码显示类似“takeobject1、object2和object3,并将其命名为multipleobjects”?我已经设置了代码,使角色停在一棵树上,但我不确定如何/如果你能组合对象,使他不会一次通过多个。非常感谢您的先进! 物体: manmc(我的角色)、treer1_MC(第一棵树)treer2_MC(第二棵树)等等 import f

我正在尝试用Flash AS3制作一款rpg风格的游戏。我试图让我的角色在碰到诸如树木和建筑物之类的物体时停止。是否有一种方法可以将多个对象链接在一起,并使代码显示类似“takeobject1object2object3,并将其命名为multipleobjects”?我已经设置了代码,使角色停在一棵树上,但我不确定如何/如果你能组合对象,使他不会一次通过多个。非常感谢您的先进! 物体: manmc(我的角色)、treer1_MC(第一棵树)treer2_MC(第二棵树)等等

import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.display.MovieClip;
import flash.events.Event;
import flash.display.Stage;

manmc.gotoAndStop ("Stand Front Frame");

var rightPressed:Boolean = new Boolean(false);
var leftPressed:Boolean = new Boolean(false);
var upPressed:Boolean = new Boolean(false);
var downPressed:Boolean = new Boolean(false);
var manSpeed:Number = 3;

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
stage.addEventListener(Event.ENTER_FRAME, gameLoop);

function keyDownHandler (keyEvent:KeyboardEvent):void
{
    if(keyEvent.keyCode == Keyboard.RIGHT)
    {
        rightPressed = true;
    }
    else if(keyEvent.keyCode == Keyboard.LEFT)
    {
        leftPressed = true;
    }
    else if(keyEvent.keyCode == Keyboard.UP)
    {
        upPressed = true;
    }
    else if(keyEvent.keyCode == Keyboard.DOWN)
    {
        downPressed = true;
    }
}

function keyUpHandler (keyEvent:KeyboardEvent):void
{
    if(keyEvent.keyCode == Keyboard.RIGHT)
    {
        rightPressed = false;
        manmc.gotoAndStop("Stand Right Frame");
    }
    else if(keyEvent.keyCode == Keyboard.LEFT)
    {
        leftPressed = false;
        manmc.gotoAndStop("Stand Left Frame");
    }
    else if(keyEvent.keyCode == Keyboard.UP)
    {
        upPressed = false;
        manmc.gotoAndStop("Stand Back Frame");
    }
    else if(keyEvent.keyCode == Keyboard.DOWN)
    {
        downPressed = false;
        manmc.gotoAndStop("Stand Front Frame");
    }
}

function gameLoop(loopEvent:Event):void
{
    if(rightPressed)
    {
        if(manmc.x < 1050)
        {
            manmc.x += manSpeed;
        }
        manmc.gotoAndStop("Walk Right Frame");

        if (manmc.hitTestObject(treer1_MC))
    {
        trace("leftHit");
        manmc.x -= 3;
    }
}
    else if(leftPressed)
    {
        if (manmc.x > 145)
        {
            manmc.x -= manSpeed;
        }
        manmc.gotoAndStop("Walk Left Frame");

        if (manmc.hitTestObject(treer1_MC))
    {
        trace("rightHit");
        manmc.x += 3;
    }
} 
      else if(downPressed)
{
    if(manmc.y < 780)
    {
    manmc.y += manSpeed;
    }
    manmc.gotoAndStop("Walk Front Frame");

    if (manmc.hitTestObject(treer1_MC))
    {
        trace("downHit");
        manmc.y -= 3;
    }
}
        else if(upPressed)
{
    if(manmc.y > 145)
    {
    manmc.y -= manSpeed;
    }
    manmc.gotoAndStop("Walk Back Frame");

    if (manmc.hitTestObject(treer1_MC))
    {
        trace("upHit");
        manmc.y += 3;
    }
}
}
导入flash.events.KeyboardEvent;
导入flash.ui.Keyboard;
导入flash.display.MovieClip;
导入flash.events.Event;
导入flash.display.Stage;
manmc.gotoAndStop(“支架前框架”);
var rightPressed:Boolean=新布尔值(false);
var leftPressed:Boolean=new Boolean(false);
var upPressed:Boolean=新的Boolean(false);
按下var:布尔值=新布尔值(false);
var manSpeed:Number=3;
stage.addEventListener(KeyboardEvent.KEY_DOWN,keydowHandler);
stage.addEventListener(KeyboardEvent.KEY\u UP,keyUpHandler);
stage.addEventListener(Event.ENTER_FRAME,gameLoop);
函数keyDownHandler(keyEvent:KeyboardEvent):void
{
if(keyEvent.keyCode==Keyboard.RIGHT)
{
rightspressed=true;
}
else if(keyEvent.keyCode==Keyboard.LEFT)
{
leftPressed=true;
}
else if(keyEvent.keyCode==Keyboard.UP)
{
upPressed=true;
}
else if(keyEvent.keyCode==Keyboard.DOWN)
{
downPressed=true;
}
}
函数keyUpHandler(keyEvent:KeyboardEvent):void
{
if(keyEvent.keyCode==Keyboard.RIGHT)
{
右压=假;
manmc.gotoAndStop(“站在右侧框架”);
}
else if(keyEvent.keyCode==Keyboard.LEFT)
{
leftPressed=false;
manmc.gotoAndStop(“站在左侧框架”);
}
else if(keyEvent.keyCode==Keyboard.UP)
{
upPressed=false;
manmc.gotoAndStop(“后置机架”);
}
else if(keyEvent.keyCode==Keyboard.DOWN)
{
按下=假;
manmc.gotoAndStop(“支架前框架”);
}
}
函数gameLoop(loopEvent:Event):void
{
如果(右键按下)
{
如果(manmc.x<1050)
{
manmc.x+=操纵速度;
}
manmc.gotoAndStop(“向右行走帧”);
if(manmc.hitTestObject(treer1_-MC))
{
跟踪(“左击”);
manmc.x-=3;
}
}
else if(左键按下)
{
如果(manmc.x>145)
{
manmc.x-=人的速度;
}
manmc.gotoAndStop(“左走帧”);
if(manmc.hitTestObject(treer1_-MC))
{
跟踪(“右击”);
manmc.x+=3;
}
} 
else if(按下)
{
if(manmc.y<780)
{
manmc.y+=操纵速度;
}
manmc.gotoAndStop(“行走前车架”);
if(manmc.hitTestObject(treer1_-MC))
{
跟踪(“重击”);
manmc.y-=3;
}
}
否则,如果(增加)
{
如果(manmc.y>145)
{
manmc.y-=操纵速度;
}
manmc.gotoAndStop(“后走框架”);
if(manmc.hitTestObject(treer1_-MC))
{
跟踪(“上升”);
manmc.y+=3;
}
}
}

使用数组跟踪多个对象


然后使用循环来迭代数组中的所有元素,而不是操作单个对象。

可能与我刚开始学习的元素重复,您介意举个例子吗?@SamA看看我在评论中链接的另一个问题,它包括一个例子。这有用吗?