Привет, я замечаю, что следующий код создает заметный кусок запаздывания при его включении.Остановить функцию создания растровых изображений/уменьшить перегрузку процессора/уменьшить задержку
public function impassable_collisions():void { //prevent player from moving through impassable mcs
for each(var mc:MovieClip in impassable) {
var bitmap = createBitmapClone(mc); //return clone of bitmap of mc, accounting for transformations
var bounds:Rectangle = player.getRect(bitmap);
var playerCenterX:Number = bounds.left + bounds.width * .5;
var playerCenterY:Number = bounds.top + bounds.height * .5;
//Test for a pixel perfect collision against a shape based on a point and radius,
//returns the angle of the hit or NaN if no hit.
var hitAngle:Number = hitTestPointAngle(bitmap, playerCenterX, playerCenterY, player.height/2);
if(!isNaN(hitAngle)){
// move player away from object
player.x -= int(Math.cos(hitAngle) * player.speed*timeDiff);
player.y -= int(Math.sin(hitAngle) * player.speed*timeDiff);
}
}
}
Таким образом, эта функция вызывается из другой функции, которая вызывается из приемника enterFrame. Я зацикливаю массив, содержащий, возможно, от 5 до 30 мувиклипов в любой момент времени, данный mc затем будет клонирован в растровое изображение, и это растровое изображение будет использоваться для проверки конфликтов между собой и другим растровым изображением («игрок») , Я предполагаю, что что-то довольно неэффективное происходит и, таким образом, создает отставание - более прерывистое движение, когда «игрок» перемещается. Кто-нибудь есть идея, что проблема/решения для нее?
Извините за довольно расплывчатый заголовок вопроса
благодаря
спасибо помощник, сделал, как вы сказали, и, похоже, уменьшил отставание немного ура – Larry