首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hitTest不工作

hitTest不工作
EN

Stack Overflow用户
提问于 2014-04-18 04:57:55
回答 1查看 151关注 0票数 0

我不明白。HitTest是非常基本的,但它不会工作。我希望我的电影剪辑下降到hitTest Touch1,但我得到了错误1061。当我对hitTest Touch1做fallerThingsLeft告诉我在score_txt上“命中”的时候,我想我已经完成了,但它告诉我在它真正命中前3秒就命中了。我还是不明白。难道没人能告诉我我做错了什么吗

代码语言:javascript
复制
import flash.display.Graphics;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.utils.Timer;
var objectSpawner: Timer;
var fallers: Array;


function initGame(): void {
    fallers = [];
    objectSpawner = new Timer(1000);
    objectSpawner.addEventListener(TimerEvent.TIMER, createEnemy);
    objectSpawner.start();
    addEventListener(Event.ENTER_FRAME, dropEnemies);
}
function createEnemy(e: TimerEvent): void {
    var enemy: Faller = new Faller();
    enemy.y = -stage.stageHeight;
    enemy.x = Math.random() * 380;
    MovieClip(enemy).cacheAsBitmap = true;
    addChild(enemy);
    fallers.push(enemy);
    drawConnectors();
}
function dropEnemies(e: Event): void {
    trace(fallers.length);
    for each(var mc: Faller in fallers) {
    mc.y += 10;
    if (mc.y > stage.stageHeight * 2)
        fallers.splice(fallers.indexOf(removeChild(mc)), 1);

    drawConnectors();
    }
}
function drawConnectors(): void {
    if (fallers.length == 0) return;
    var g: Graphics = this.graphics;
    g.clear();
    g.lineStyle(10,0xFFFFFF);
    var mc: Faller = fallers[0];
    g.moveTo(mc.x, mc.y);
    for each(mc in fallers) g.lineTo(mc.x, mc.y);


}

init()


function init():void
{
          var fallingThingsLeft:FallingThings = new FallingThings
          (stage.stageWidth / 2, stage.stageHeight);
          var fallingThingsRight:FallingThings = new FallingThings
          (stage.stageWidth / 2, stage.stageHeight);
          addChild(fallingThingsLeft);
          addChild(fallingThingsRight);
          fallingThingsRight.x = stage.stageWidth / 2;




    }

import flash.events.Event;

this.addEventListener( Event.ENTER_FRAME, handleCollision)

function handleCollision( e:Event ):void
{
    if(fallingThingsLeft.hitTestObject(Touch1))
       {
           output_txt.text = "HIT"
       }
       else
       {
           output_txt.text = "MISS"
       }
}
EN

回答 1

Stack Overflow用户

发布于 2014-04-19 00:58:40

在没有看到对象的情况下,我不能确定;然而,在开始使用hitTestObject时,一个常见的问题是理解命中测试是在边界框上执行的。请参见下图。这将向hitTestObject注册一个' hit‘,因为边界框通过了hit测试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23143317

复制
相关文章

相似问题

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