대화
카케오미_GIFT님의 글에서 이어진 답글 0개
플래시 강좌 - 인공지능 적 만들기 下 (주닷 PS.)- 이번강좌는 사진이 없습니다 단지 색구분만이 있을뿐입니다. http://blog.naver.com/vv4vv/20121632140 웰컴웰컴 반가워여 아 그리고 전에 플강써달라시는분 있었는데 저는 맨날글강만써서요.... 글강을 사랑합니다(?) 어쨋든 강좌를 시작하죠 --------------------------------------------------------- 일단 아래의 액션은 上 편에서 나왔던 액션입니다 onClipEvent(load){ wil = 0;// 행동의 종류 ( 건들X ) rdm = 30;// 이 숫자가 0이될떄마다 행동이바뀜 lng = 0;// 행동의 하는 시간(초) cal = false; // 왼쪽,오른쪽보기의 설정 } onClipEvent(enterFrame){ this.gotoAndStop(wil); // 이것의 wil(종류변수)프레임 으로간다 rdm -= 1;// 숫자가 커질수록 빨리빨리 행동이 바뀜 (※ 숫자가커질시 아래if문을 바꿔줘야함 초보자들은 건들X) if(wil == 2){ // wil이 2라면 ( 즉, 달리기모션이라면 ) if(this._xscale == 100){ // 상위의 if문의조건에 성립하고 이것의 _xscale 이 100이라면 즉 왼쪽을보고있다면 this._x -= 3; // 왼쪽으로움직인다 } if(this._xscale == -100){ // 상상위의 if문의조건에 성립하고 이것의 _xscale 이 -100이라면 this._x += 3; // 오른쪽으로움직인다 } if(cal == false){// 상상상위의 if문의조건에 성립하고 cal 이 false라면 this._xscale = random(2)*200-100; // 이것의 _xscale 은 100아니면-100이다 ( 0,1 => 0*200-100=-100, 1*200-100=100) cal = true; } } if(rdm == 0){ // rdm 이란수가 0 과 같거나 작으면(if : ~하면) cal = false; wil = random(5)+1; // 0~4 +1 = 1~5 가 된다 wil 을 1~5중하나로 바꾼다 rdm = 30;// 다시 행동하기까지의 카운터를센다 } if(lng == 0 && wil > 0){ // wil 이 1이라면 ( 첫번째 행동 ) 또한 lng가 0이라면 lng = random(10)+47; // lng 가 47~57이된다 ( 행동의 길이 설정) } if(lng > 0){ // lng 가 0보다높으면 lng -= 1; // lng 를 1씩뺀다 } if(lng 0*200-100=-100, 1*200-100=100) cal = true; } } if(rdm == 0){ // rdm 이란수가 0 과 같거나 작으면(if : ~하면) // B. cal = false; wil = random(5)+1; // 0~4 +1 = 1~5 가 된다 wil 을 1~5중하나로 바꾼다 rdm = 30;// 다시 행동하기까지의 카운터를센다 } if(lng == 0 && wil > 0){ // wil 이 1이라면 ( 첫번째 행동 ) 또한 lng가 0이라면. lng = random(10)+47; // lng 가 47~57이된다 ( 행동의 길이 설정) } if(lng > 0){ // lng 가 0보다높으면 lng -= 1; // lng 를 1씩뺀다 } if(lng = - 100){ // 거리차가 -50~50 이라면 cls = true } else { cls = false } 참 쉽죠? 여기서 더응용한다면 캐릭터가 공격할때 랜덤으로 숨고 그런것도 가능하겠습니다 위와같이캐릭의 프레임위치를 _currentframe 으로 봐서 변수로 해둔뒤 변수에따라 움직이면 되겠지요 아래는 수정액션을 모두 합친것입니다 onClipEvent(load){ // A. clsX = 0; // 캐릭터와의 거리차 cls = false; // 위의 체커 false 일경우 멀리, true 일경우 캐릭터가 근접해있음 wil = 0;// 행동의 종류 ( 건들X ) rdm = 30;// 이 숫자가 0이될떄마다 행동이바뀜 lng = 0;// 행동의 하는 시간(초) cal = false; // 왼쪽,오른쪽보기의 설정 } onClipEvent(enterFrame){ // B. clsX = this._x - _root.캐릭의인스턴스네임._x if(cls == true){ this.gotoAndStop(wil); // 이것의 wil(종류변수)프레임 으로간다 } else { this.gotoAndStop(1) } rdm -= 1;// 숫자가 커질수록 빨리빨리 행동이 바뀜 (※ 숫자가커질시 아래if문을 바꿔줘야함 초보자들은 건들X) if(clsX = - 100){ // 거리차가 -50~50 이라면 cls = true } else { cls = false } if(wil == 2){ // wil이 2라면 ( 즉, 달리기모션이라면 ) if(this._xscale == 100){ // 상위의 if문의조건에 성립하고 이것의 _xscale 이 100이라면 즉 왼쪽을보고있다면 this._x -= 3; // 왼쪽으로움직인다 } if(this._xscale == -100){ // 상상위의 if문의조건에 성립하고 이것의 _xscale 이 -100이라면 this._x += 3; // 오른쪽으로움직인다 } if(cal == false){// 상상상위의 if문의조건에 성립하고 cal 이 false라면 this._xscale = random(2)*200-100; // 이것의 _xscale 은 100아니면-100이다 ( 0,1 => 0*200-100=-100, 1*200-100=100) cal = true; } } if(rdm == 0){ // rdm 이란수가 0 과 같거나 작으면(if : ~하면) // B. cal = false; wil = random(5)+1; // 0~4 +1 = 1~5 가 된다 wil 을 1~5중하나로 바꾼다 rdm = 30;// 다시 행동하기까지의 카운터를센다 } if(lng == 0 && wil > 0){ // wil 이 1이라면 ( 첫번째 행동 ) 또한 lng가 0이라면. lng = random(10)+47; // lng 가 47~57이된다 ( 행동의 길이 설정) } if(lng > 0){ // lng 가 0보다높으면 lng -= 1; // lng 를 1씩뺀다 } if(lng <= 0){ // lng 가 0보다 같거나 작으면 wil = 0; // wil 을 0으로한다 } } // Ps. 캐릭과의 근접하다는 기준의 거리를 넓히거나/줄이고싶으시면 위의 파랑색부분의 숫자를 수정하시면됩니다 이번강좌는 이것으로 마치겠습니
하면 이 대화에 답할 수 있어요.