Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.12.2009, 21:05
megapup вне форума Посмотреть профиль Отправить личное сообщение для megapup Найти все сообщения от megapup
  № 1  
Ответить с цитированием
megapup

Регистрация: Aug 2009
Сообщений: 34
По умолчанию Область перерисовки не успевает за объектом

почему то при быстром перемещении спрайта с битмапом, этот самый битмап не успевает отрисовываться
на картинке справа шарик без движения, слева при перемещении
красным область перерисовки
почему так происходит?
Изображения
 

Старый 14.12.2009, 21:18
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Странно. Дайте код.

Старый 14.12.2009, 21:31
megapup вне форума Посмотреть профиль Отправить личное сообщение для megapup Найти все сообщения от megapup
  № 3  
Ответить с цитированием
megapup

Регистрация: Aug 2009
Сообщений: 34
примерно такой
Код AS3:
ball = new Sprite();
var Btm:Bitmap =  из файла
ball.addChild(Btm);
//...
stage.addEventListener(Event.ENTER_FRAME, ef);
//...
function ef()
{
	ball.x+=1;
	ball.y+=1;
	//...
}

Старый 14.12.2009, 21:42
tofflife вне форума Посмотреть профиль Отправить личное сообщение для tofflife Найти все сообщения от tofflife
  № 4  
Ответить с цитированием
tofflife

Регистрация: Jul 2009
Сообщений: 95
А если попробовать так?

Код AS3:
ball = new Sprite();
var Btm:Bitmap =  из файла
var percent:Number = 0;
const startX : Number = 0;
const startY : Number = 0;
const destX : Number = 520;
const destY : Number = 390;
ball.addChild(Btm);
//...
stage.addEventListener(Event.ENTER_FRAME, ef);
//...
 
 
function ef()
{
	ball.x = (destX - startX) * (percent / 100);
	ball.y = (destX - startX) * (percent / 100;
        percent = percent + 0.1;
        if (percent >= 100)
        {
              stage.removeEventListener(Event.ENTER_FRAME, ef); 
        }
	//...
}
Так рекоммендуют делать во многих пособиях по играм.

Старый 14.12.2009, 21:57
megapup вне форума Посмотреть профиль Отправить личное сообщение для megapup Найти все сообщения от megapup
  № 5  
Ответить с цитированием
megapup

Регистрация: Aug 2009
Сообщений: 34
дак попробывать конечно можно) но у меня то закон перемещения свой)
может есть другой метод анимации, не в Event.ENTER_FRAME ?

Старый 14.12.2009, 23:04
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 6  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Гм, как будто процессор не успевает за перерисовкой...
Выложи swf`ку

Старый 16.12.2009, 06:16
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 7  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Вам надо шашеки или ехать? Вас не устраивает только отображение области перерисовки или есть еще какие-то проблемы?

Старый 16.12.2009, 22:24
megapup вне форума Посмотреть профиль Отправить личное сообщение для megapup Найти все сообщения от megapup
  № 8  
Ответить с цитированием
megapup

Регистрация: Aug 2009
Сообщений: 34
вот swf-ка и код, но дело в том что наблюдается глюк не всегда, при определенных условиях, нужно немного подождать или попытаться изменить скорость (var speed)
Вложения
Тип файла: zip src.zip (13.0 Кб, 46 просмотров)

Старый 16.12.2009, 22:31
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 9  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
такой глюк происходит, возможно, из-за того, что вы назначаете битмапу не целые кординаты. Попробуйте
Код AS3:
ball.x=Math.round(ballX+=vector.x*speed);
			ball.y = Math.round(ballY += vector.y * speed);
__________________
мой пустой блог

Старый 16.12.2009, 22:35
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 10  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
О боже, код читать ваш очень сложно...
Код AS3:
addChild(ball.addChild(new BallPic).parent);
Я умер.
Код AS3:
ball.x=ballX+=vector.x*speed;
ball.y=ballY+=vector.y*speed;
Добило трупа.
В общем, картинки когда на дробных координатах располагаются - подобные спецэффекты и появляются.

Создать новую тему Ответ Часовой пояс GMT +4, время: 07:30.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 07:30.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.