Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> передвижение пикселей, не получается... 
V
    Опции темы
IAV
Дата 20.2.2006, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 4.7.2005

Репутация: 2
Всего: 3



Этот кусок кода по идее должен перемещать 100 пикселей из пункта А в пункт Б (такие задачи надеюсь все в школе учили? smile ). Но не перемещает. Помогите плзз исправить код.
srcx и srcy - массивы с исходными координатами пикселей, dstx и dsty, соответственно - массивы с "желаемыми" координатами. dx и dy - промежуточные вычисления, blur - для "бесследного" перемещения
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.filters.BlurFilter;
import flash.display.BitmapData;
//
bmp = new BitmapData(550, 400, false, 0x000000);
mc = this.createEmptyMovieClip("holder", 1);
mc.attachBitmap(bmp, 0);
//
srcx = new Array();
dstx = new Array();
srcy = new Array();
dsty = new Array();
for (var i = 0; i<100; i++) {
srcx[i] = random(550);
dstx[i] = random(550);
srcy[i] = random(400);
dsty[i] = random(400);
}
k = 0;
_root.onEnterFrame = function() {
bmp.applyFilter(bmp, new Rectangle(0, 0, 550, 400), new Point(0, 0), new BlurFilter(2, 2, 2));
k += .01;
for (var i = 0; i<100; i++) {
dx = Math.max(dstx[i]*(1-k)+srcx[i]*k,dstx[i]);
dy = Math.max(dsty[i]*(1-k)+srcy[i]*k,dsty[i]);
bmp.setPixel(dx, dy, 0xffffff);
}
};

PM MAIL   Вверх
AlDev
Дата 21.2.2006, 04:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 8
Всего: 50



IAV,
после строки
Код

bmp.setPixel(dx, dy, 0xffffff);

добавь строку:
Код

mc.attachBitmap(bmp, 0);

и будет тебе счастье smile
ЗЫ:
кнопка user posted image дана для всех.

Это сообщение отредактировал(а) AlDev - 21.2.2006, 04:44
PM MAIL WWW ICQ YIM MSN   Вверх
IAV
Дата 21.2.2006, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 4.7.2005

Репутация: 2
Всего: 3



Счастья у меня как нет, так и не было smile. AlDev, я, конечно, благодарен за любую помощь, но какой смысл вставлять эту строку?
Код

mc.attachBitmap(bmp, 0);

У меня проблема в формуле, которая после dx и dy. С мувиками легче, там просто ввел
Код

tmp_x = newx - mc._x;
tmp_y = newy - mc._y;
mc._x += tmp_x/framerate;
mc._y += tmp_y/framerate;

и все... А млин с пикселами такое не катит
PM MAIL   Вверх
AlDev
Дата 21.2.2006, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 8
Всего: 50



пардон, я ошибся smile совсем не то сказал smile

как вариант, хранить dx и dy для каждой точки.
Код

import flash.geom.Point;
import flash.geom.Rectangle;
import flash.filters.BlurFilter;
import flash.display.BitmapData;
//
bmp = new BitmapData(550, 400, false, 0x000000);
mc = this.createEmptyMovieClip("holder", 1);
mc.attachBitmap(bmp, 0);

var framerate = 300;
//
srcx = new Array();
dstx = new Array();
srcy = new Array();
dsty = new Array();
var dxs:Array = new Array();
var dys:Array = new Array();
for (var i = 0; i<100; i++) 
{
    srcx[i] = random(550);
    dstx[i] = random(550);
    srcy[i] = random(400);
    dsty[i] = random(400);
    dxs[i] = (dstx[i] - srcx[i])/framerate;
    dys[i] = (dsty[i] - srcy[i])/framerate;
}
var k:Number = 0;
_root.onEnterFrame = function() 
{
    k++;
    bmp.applyFilter(bmp, new Rectangle(0, 0, 550, 400), new Point(0, 0), new BlurFilter(2, 2, 2));
    for (var i = 0; i<100; i++) 
    {
        srcx[i] += dxs[i];
        srcy[i] += dys[i];
        bmp.setPixel(srcx[i], srcy[i], 0xffffff);
    }
    if (k==framerate)
    {
        delete this.onEnterFrame;
    }
};

PM MAIL WWW ICQ YIM MSN   Вверх
IAV
Дата 21.2.2006, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 4.7.2005

Репутация: 2
Всего: 3



спасибо smile smile
Добавлено @ 14:26
допустим точек будет около тысячи и добавится третье измерение - имхо массивы будет слишком долго считаться. И координаты точек будут не рандомные, а будут считаться формулами. Но так, идея хороша - попробую.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Flash"
AlDev
SoWa
  • Если вы хотите предложить кому-либо работу, то пишите или в личку, или оставляйте сообщения в специально предназначеном для этого форуме "Объявления о найме специалистов"
  • Один вопрос - одна тема. Не надо переходов от одного вопроса к другому.
  • Если вы хотите показать какой-нибудь ваш мульт, причём показать, а не предоставить исходник, то вам сюда
  • Вопросы по разработке интернет-приложений на Flex и вопросы по MXML пишите в раздел Flex
  • Смотрим в будущее. ActionScript 3 обсуждается в форуме ActionScript 3
  • Новости из мира Flash.
  • New! [code=ascript][/code] - подсветка ActionScript + wikipedia help

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, AlDev, SoWa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 1,2 | Следующая тема »


 




[ Время генерации скрипта: 0.0529 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.