간단한 hitTestObject를 만들고 볼을 사용하여 화면에 그려지는 선을 봅니다. 그럴 경우 모든 줄을 지우고 신선한 것을 시작합니다. 나는 아주 가깝다. checkIt() 함수는 코드를 생성하고 라인을 지우지 만 새로운 모양을 만들지 않는 곳입니다.as3 hitTestObject에 도달하면 as3 마우스로 그림을 그립니다.
히트 테스트에 도달했을 때 마우스가 그린 선을 지우고 새로 시작하려면 어떻게합니까?
var myshape:Shape;
myshape = new Shape();
myshape.graphics.lineStyle(12, 0xC807DE);
var alreadyDrawn:Shape;
alreadyDrawn = new Shape();
stage.addEventListener(MouseEvent.MOUSE_DOWN, activateDraw);
function activateDraw(event:MouseEvent):void
{
myshape.graphics.moveTo(mouseX,mouseY);
addChild(myshape);
stage.addEventListener(MouseEvent.MOUSE_MOVE, lineDraw);
function lineDraw(myevent:MouseEvent):void
{
stage.addEventListener(MouseEvent.MOUSE_UP, stopDraw);
function stopDraw(endevent:MouseEvent):void
{
alreadyDrawn = myshape;
stage.removeEventListener(MouseEvent.MOUSE_MOVE, lineDraw);
}
myshape.graphics.lineTo(mouseX,mouseY);
myevent.updateAfterEvent();
checkIt();
}
}
function checkIt()
{
if (alreadyDrawn.hitTestObject(Ball) == true)
{
trace("Hit The Balls");
myshape.graphics.clear();
myshape.graphics.lineStyle(12, 0xC807DE);
}
}
와우는 큰 코드 주셔서 감사합니다. 장면 1, 레이어 '레이어 1', 프레임 1, 라인 25에이 오류가 발생했습니다. \t 1061 : 고정 유형 flash.display : Shape를 사용하여 참조를 통해 가능한 정의되지 않은 메서드 copyFrom을 호출합니다. –
죄송 합니다만,'copyFrom()'은'Graphics' 클래스 메소드이며, 또 다른'Graphics' 객체를 소스로 받아들입니다. 결정된. – Vesper
모든 코드를 다시 한 번 고맙습니다. 나는 아직도 문제가있다. 간단히 말해서 내가하고 싶은 것은 아이들을위한 그리기 게임을 만드는 것입니다. 그들은 "시작"버튼을 눌러 (새로운 모양을 만든다) 그리다가 그 위에 물건을 올리면 다시 시작하고 그려진 모든 물건과 선을 지 웁니다. 또는 '시작'을 다시 눌러 똑같은 작업을 수행 할 수 있습니다. 하지만 내 코드는 변경 사항이 있더라도 매우 버그가 있습니다. 나는 그것의 가까운 tho를 알고있다. 그것의 미로 게임. 그래서 벽에 부딪쳤을 때 그들은 처음으로 돌아 간다. –