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

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

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Так вот, суть в том, чтобы сгруппировать ваши платформы в один единый контейнер, нарисовать их в битмапдату с размерами этого контейнера(а лучше нарисовать сам контейнер, тогда и матрица не нужна), создать экземпляр битмапа, скормить ему битмапдату с платформами и далее удалить контейнер с векторными формами с экрана(removeChild), а по сути можно вообще не добавлять.

И только после этого начинать игру и проверять столкновения когда надо.

Добавлено через 14 минут
Цитата:
Плюс если я собираюсь использовать BlendMode, мне надо что-то в соответствующий параметр писать? (вопрос не по теме, это уже касательно флешек а-ля worms)
Цитата:
draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:flash.geom:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Draws the source display object onto the bitmap image, using the Flash runtime vector renderer.
Используйте этот параметр.

Цитата:
blendMode:String (default = null) — A string value, from the flash.display.BlendMode class, specifying the blend mode to be applied to the resulting bitmap.
__________________
There is no thing in this world that is not simple.


Последний раз редактировалось ZackMercury; 22.03.2015 в 16:03.
Старый 22.03.2015, 18:24
Wormhole вне форума Посмотреть профиль Отправить личное сообщение для Wormhole Найти все сообщения от Wormhole
  № 22  
Ответить с цитированием
Wormhole
 
Аватар для Wormhole

Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
Цитата:
Сообщение от ZackMercury Посмотреть сообщение
Используйте этот параметр.[/url]
Я так и подумал, спасибо. Посмотрю насчет вопросов, может, возникнут

Добавлено через 12 минут
Цитата:
Сообщение от ZackMercury Посмотреть сообщение
Так вот, суть в том, чтобы сгруппировать ваши платформы в один единый контейнер, нарисовать их в битмапдату с размерами этого контейнера(а лучше нарисовать сам контейнер, тогда и матрица не нужна), создать экземпляр битмапа, скормить ему битмапдату с платформами и далее удалить контейнер с векторными формами с экрана(removeChild), а по сути можно вообще не добавлять.
Можете пояснить это предложение насчет контейнера? Меня просто немного смутили словосочетания "нарисовать их в битмапдату с размерами этого контейнера", "лучше нарисовать сам контейнер" и "а по сути можно вообще не добавлять".

Добавлено через 16 минут
Цитата:
Сообщение от ZackMercury Посмотреть сообщение
Так вот, суть в том, чтобы сгруппировать ваши платформы в один единый контейнер <...> а лучше нарисовать сам контейнер
Вы имеете ввиду сгруппировать их и записать как объект класса MovieClip? А нарисовать контейнер - как? Что он должен из себя представлять? Я всегда думал, что контейнер - это абстрактный объект...

Добавлено через 17 минут
Цитата:
Сообщение от ZackMercury Посмотреть сообщение
нарисовать их в битмапдату
Командой draw()?

Добавлено через 18 минут
Цитата:
Сообщение от ZackMercury Посмотреть сообщение
скормить ему битмапдату
Что имеется в виду под "скормить"?


Я надеюсь, вы ответите на все мои вопросы. Заранее спасибо

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
Можете пояснить это предложение насчет контейнера?
Если собираете уровень в Flash IDE, то выделите все платформы и нажмите F8, затем окей и дайте инстанс нейм container.

Код AS3:
var bmpDt:BitmapData = new BitmapData(container.width, container.height, true, 0x00000000);
bmpDt.draw(container);
removeChild(container);
Затем вот так:
Код AS3:
var bmp:Bitmap = new Bitmap(bmpDt);
bmp.x = container.x;
bmp.y = container.y;
addChild(bmp);
И теперь мы можем делать с растровой копией контейнера с платформами буквально всё, что захотим.
Код AS3:
if(bmpDt.getPixel32(positionOnBitmap.x, positionOnBitmap.y) >> 24 > 0) trace("Point hits a visible pixel");
Правда для проверки столкновения с точкой в целом, а не конкретно на битмапдате, нужно от positionOnBitmap.x отнимать bmp.x, а от positionOnBitmap.y соответственно bmp.y.

Добавлено через 5 минут
Сейчас попробую быстро набыдлокодить накатать пример...
__________________
There is no thing in this world that is not simple.


Последний раз редактировалось ZackMercury; 22.03.2015 в 19:39.
Старый 22.03.2015, 19:59
Wormhole вне форума Посмотреть профиль Отправить личное сообщение для Wormhole Найти все сообщения от Wormhole
  № 24  
Ответить с цитированием
Wormhole
 
Аватар для Wormhole

Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
Цитата:
Сообщение от ZackMercury Посмотреть сообщение
Если собираете уровень в Flash IDE, то выделите все платформы и нажмите F8, затем окей и дайте инстанс нейм container.

Код AS3:
var bmpDt:BitmapData = new BitmapData(container.width, container.height, true, 0x00000000);
bmpDt.draw(container);
removeChild(container);
Затем вот так:
Код AS3:
var bmp:Bitmap = new Bitmap(bmpDt);
bmp.x = container.x;
bmp.y = container.y;
addChild(bmp);
И теперь мы можем делать с растровой копией контейнера с платформами буквально всё, что захотим.
Код AS3:
if(bmpDt.getPixel32(positionOnBitmap.x, positionOnBitmap.y) >> 24 > 0) trace("Point hits a visible pixel");
Правда для проверки столкновения с точкой в целом, а не конкретно на битмапдате, нужно от positionOnBitmap.x отнимать bmp.x, а от positionOnBitmap.y соответственно bmp.y.

Добавлено через 5 минут
Сейчас попробую быстро набыдлокодить накатать пример...
Ха! А я уж боялся просить код. Теперь все понятно. Действительно просто. Спасибо!!!

Старый 22.03.2015, 20:32
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 25  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Верней там должно быть так:

Код AS3:
if(bmpDt.getPixel32(positionOnBitmap.x, positionOnBitmap.y) >> 24 & 0xFF > 0) trace("Point hits a visible pixel");
Сча, я почти закончил с демкой
__________________
There is no thing in this world that is not simple.

Старый 22.03.2015, 20:55
Wormhole вне форума Посмотреть профиль Отправить личное сообщение для Wormhole Найти все сообщения от Wormhole
  № 26  
Ответить с цитированием
Wormhole
 
Аватар для Wormhole

Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
Цитата:
Сообщение от ZackMercury Посмотреть сообщение
Верней там должно быть так:

Код AS3:
if(bmpDt.getPixel32(positionOnBitmap.x, positionOnBitmap.y) >> 24 & 0xFF > 0) trace("Point hits a visible pixel");
Сча, я почти закончил с демкой
Будет полезно посмотреть)

Старый 22.03.2015, 21:05
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 27  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
main.swf   (27.2 Кб)


Быстро мышкой набросал графику х)

Кликнуть в области флешки и управлять пробел-влево-вправо.
Вложения
Тип файла: rar main.rar (22.1 Кб, 16 просмотров)
Тип файла: swf main.swf (27.2 Кб, 109 просмотров)
__________________
There is no thing in this world that is not simple.


Последний раз редактировалось ZackMercury; 22.03.2015 в 23:08.
Старый 22.03.2015, 23:19
Wormhole вне форума Посмотреть профиль Отправить личное сообщение для Wormhole Найти все сообщения от Wormhole
  № 28  
Ответить с цитированием
Wormhole
 
Аватар для Wormhole

Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
Это лицо будет сниться мне в кошмарах.

Спасибо за пример!

Старый 23.03.2015, 00:47
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 29  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Пародия на Cтива(в стиле ака ваша ава) из кубомира, старался
__________________
There is no thing in this world that is not simple.

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

Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
Цитата:
Сообщение от ZackMercury Посмотреть сообщение
Пародия на Cтива(в стиле ака ваша ава) из кубомира, старался
Это ж спуди мин. Ну ок
__________________
В прошлом - AS3 программист, в данный момент пишу на Haxe

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

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

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


 


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


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