2013-07-03 2 views
0

저는 작은 게임을하고 있습니다. 나는 액션 스크립트의 초보자이다. 내 캐릭터가 화면 상단에서 왼쪽에서 오른쪽 또는 오른쪽에서 왼쪽으로 무작위로 날아가 길 원합니다. 무작위로 나옵니다. . 나는 그다지 생각할 생각이 없다. 아무도 그것에 대해 설명 할 수 있습니까?문자를 as3에서 가로 방향으로 임의로 이동합니다. .

답변

0

이처럼 왼쪽에서 오른쪽으로 무비 클립 가자 수 있습니다

//the center point to move around 
var center:Number = 512; 

//the offset to move to the left and right (512 + 300 and 512 - 300) 
var offset:Number = 300; 

//the speed the object moves (higher = slower, lower = faster) 
var speed:Number = 2000; 

//create a object to move around, or just get something from the stage 
var dragon:MovieClip = new MovieClip(); 
dragon.graphics.beginFill(0); 
dragon.graphics.drawRect(0, 0, 50, 50); 
dragon.graphics.endFill(); 
addChild(dragon); 

addEventListener(Event.ENTER_FRAME, onEnter_frame); 
function onEnter_frame(e:Event):void { 
    var time:Number = new Date().valueOf()/speed; 
    dragon.x = center + (Math.cos(time) * offset) 
} 
+0

안녕하세요 Marigin, Ur 코드가 잘 작동합니다. 하지만 제 드래곤은 알로 움직이지 않습니다. . 직사각형 만 움직입니다. . – Venki

+0

드래곤에 대한 참조를 내 코드에서 변경해야합니다 ofcourse – Marijn

+0

고마워요. . 나는 그것을 올바르게 얻었다. 하지만 그 일은 tat입니다. 오른쪽에서 왼쪽으로 갈 때 제 드래곤이 완벽하게 날아갑니다. 그리고 그것은 왼쪽에서 오른쪽으로 오면 반대 방향으로 날아갑니다. ther을 변환하거나 AS3에서 회전시킬 수있는 방법이 있습니까? – Venki

0

이 기능을 사용 : http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Math.html#random%28%29

은 임의의 숫자를 얻을 수 있습니다. 그런 다음이 숫자를 사용하여 왼쪽 또는 오른쪽인지 확인하십시오 (예 : 최대/2 미만의 값 확인 (0.5부터 1 사이의 임의 생성기이므로 0.5). 왼쪽 또는 오른쪽으로 결정하고 다른 부분은 다른 쪽을 위해). 그런 다음 좌표를 설정하여 캐릭터를 이동하십시오. 그러나 너무 빨리 움직이면 이상한 움직임을 초래합니다. 게임에 따라 무작위 요소를 기반으로 무언가를 더 복잡하게 만들어야 할 수도 있습니다.

희망이 도움이됩니다.

+0

안녕하세요. tat. 감사합니다. . 그 것들은 그리드 룰러 값에 따라 무작위로옵니다. . 나는 용과 같은 물건을 만들어서 움직였다. – Venki

0

나는 지금 TIS 같은 짓을했다. . 그러나 나는 그것이 올바른 방법이 아니라는 것을 안다. 그 점은 내가 좋아하는 경우 오른쪽에서 왼쪽으로 드래곤즈 팝이 3 번 밖에 없다는 것입니다. 나는 하나씩 화면의 오른쪽에서 왼쪽으로 무작위로 나오기 위해 더 많은 드래곤이 필요하다.

//DRAGON Properties 
var Dragon:dragon=new dragon(); 
Dragon.x+=1100; 
Dragon.y=100; 
addChild(Dragon); 
stage.addEventListener(Event.ENTER_FRAME,dragonmove); 

function dragonmove(e:Event):void{ 
Dragon.x-=2; 
Dragon.y=100; 
} 

var Dragon1:dragon1=new dragon1(); 
Dragon1.x+=1900; 
Dragon1.y=100; 
addChild(Dragon1); 
stage.addEventListener(Event.ENTER_FRAME,dragon1move); 

function dragon1move(e:Event):void{ 
Dragon1.x-=2; 
Dragon1.y=150; 
} 

var Dragon2:dragon2=new dragon2(); 
Dragon2.x+=2800; 
Dragon2.y=100; 
addChild(Dragon2); 
stage.addEventListener(Event.ENTER_FRAME,dragon2move); 

function dragon2move(e:Event):void{ 
Dragon2.x-=2; 
Dragon2.y=50; 
} 
+0

같은 3 자 트위닝 스크립트에서 전리품을 얻어야합니다. Object Pooling을 더 잘 사용하고 많은 드래곤 (예 : 20)을 만들어 무작위로 움직 이도록합니다. 그런 다음 화면을 떠날 때 다시 사용하십시오. 이 비디오보기 : http://www.gotoandlearn.com/play.php?id=160 – Marijn

0

답장을 보내 주셔서 감사합니다. 이 일을 잘 재치 있어요.

//the center point to move around 
var center:Number = 512; 

//the offset to move to the left and right (512 + 300 and 512 - 300) 
var offset:Number = 300; 

//the speed the object moves (higher = slower, lower = faster) 
var speed:Number = 2000; 

//create a object to move around, or just get something from the stage 
var dragon:MovieClip = new MovieClip(); 
dragon.graphics.beginFill(0); 
dragon.graphics.drawRect(0, 0, 50, 50); 
dragon.graphics.endFill(); 
addChild(dragon); 

addEventListener(Event.ENTER_FRAME, onEnter_frame); 
function onEnter_frame(e:Event):void { 
var time:Number = new Date().valueOf()/speed; 
dragon.x = center + (Math.cos(time) * offset) 
} 
관련 문제