Показать сообщение отдельно
Старый 22.02.2010, 18:12
an_games вне форума Посмотреть профиль Отправить личное сообщение для an_games Найти все сообщения от an_games
  № 3  
Ответить с цитированием
an_games

Регистрация: Mar 2007
Сообщений: 207
всех случаев я не припомню, но обычно я делаю по 2 варианту и меня это устраивает, тк особо сложных расчетов я не делал, но сейчас я хочу использовать ниже приведенный код в котором последний раз замечал это.

1.
Код AS1/AS2:
var step=sss;
 
function placeBug() {
	lev++;
	var d = _root.bug.duplicateMovieClip("bg" + lev, lev);
		d._x =xxx;
		d._y =yyy; 
	           d._rotation =rrr; 
 
d.onEnterFrame=function(){	
 
var angle =this._rotation*3.141/180;
 
var bugX = this._x + step * _global.Math.cos(angle);
var bugY = this._y + step * _global.Math.sin(angle);
 
var myPoint1:Object = {x:7, y: 6}; this.localToGlobal(myPoint1);
var myPoint2:Object = {x:7, y:-6}; this.localToGlobal(myPoint2);
 
   if (land.hitTest(myPoint1.x, myPoint1.y, true)||land.hitTest(myPoint2.x, myPoint2.y, true)){	
 
  if (land.hitTest(myPoint1.x, myPoint1.y, true)){this._rotation-=20;};
  if (land.hitTest(myPoint2.x, myPoint2.y, true)){this._rotation+=20;};
		}else{
		this._x = bugX;
		this._y = bugY;}		
			}	          
 
	}
2.
Код AS1/AS2:
 
var step=sss;
 
function placeBug() {
	lev++;
	var d = _root.bug.duplicateMovieClip("bg" + lev, lev);
		d._x =xxx;
		d._y =yyy; 
	           d._rotation =rrr;           
 
	    bugsArray.push(d);
	}
 
function moveBugs() {
 
var i = _root.bugsArray.length;
var bugsArr  = _root.bugsArray;
 
var b_cos  :Function = _global.Math.cos;
var b_sin   :Function = _global.Math.sin;
 
	while(i--) {
 
var bugA = bugsArr[i];
var angle =bugA._rotation*3.141/180;
var bugX = bugA._x + step * b_cos(angle);
var bugY = bugA._y + step * b_sin(angle);
 
var myPoint1:Object = {x:7, y: 6}; bugA.localToGlobal(myPoint1);
var myPoint2:Object = {x:7, y:-6}; bugA.localToGlobal(myPoint2);
 
if (land.hitTest(myPoint1.x, myPoint1.y, true)
  ||land.hitTest(myPoint2.x, myPoint2.y, true)){	
 
if (land.hitTest(myPoint1.x, myPoint1.y, true)){bugA._rotation-=20;};
if (land.hitTest(myPoint2.x, myPoint2.y, true)){bugA._rotation+=20;};
 
 
		}else{
 
	bugA._x = bugX;
	bugA._y = bugY;}
 
}
}



[/as]