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

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

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

Регистрация: Feb 2014
Сообщений: 192
Tip кубик

Попробовал сделать кубик, нарисовал на сцене 6 граней (movieclip - s1, s2 ... s6) - разместил их как в кубике, пробую вращать - не получается правильно размещать их в слоях, есть ли возможность делать их с одной стороны не прозрачными. Может быть есть где-то исходник?
Вот мой код
Код AS3:
 
addEventListener(Event.ENTER_FRAME,ef);
 
function ef(e:Event):void
{
	cube.rotationX++;
	cube.rotationY++;
 
	if (cube.rotationX > 0 && cube.rotationX < 90)
	{
		if (cube.rotationY > 0 && cube.rotationY < 90)
		{
			cube.addChild(cube.s1);
			cube.addChild(cube.s3);
			cube.addChild(cube.s4);
		}
		if (cube.rotationY > 90 && cube.rotationY < 180)
		{
			cube.addChild(cube.s4);
			cube.addChild(cube.s6);
			cube.addChild(cube.s2);
		}
		if (cube.rotationY > 180 && cube.rotationY < 270)
		{
			cube.addChild(cube.s6);
			cube.addChild(cube.s2);
			cube.addChild(cube.s5);
		}
		if (cube.rotationY > 270 && cube.rotationY < 360)
		{
			cube.addChild(cube.s3);
			cube.addChild(cube.s5);
			cube.addChild(cube.s1);
		}
	}
 
	if (cube.rotationX > 90 && cube.rotationX < 180)
	{
		if (cube.rotationY > 0 && cube.rotationY < 90)
		{
			cube.addChild(cube.s6);
			cube.addChild(cube.s3);
			cube.addChild(cube.s4);
		}
		if (cube.rotationY > 90 && cube.rotationY < 180)
		{
			cube.addChild(cube.s2);
			cube.addChild(cube.s4);
			cube.addChild(cube.s1);
		}
		if (cube.rotationY > 180 && cube.rotationY < 270)
		{
			cube.addChild(cube.s2);
			cube.addChild(cube.s1);
			cube.addChild(cube.s5);
		}
		if (cube.rotationY > 270 && cube.rotationY < 360)
		{
			cube.addChild(cube.s5);
			cube.addChild(cube.s6);
			cube.addChild(cube.s3);
		}
	}
 
	if (cube.rotationX > 180 && cube.rotationX < 270)
	{
		if (cube.rotationY > 0 && cube.rotationY < 90)
		{
			cube.addChild(cube.s4);
			cube.addChild(cube.s6);
			cube.addChild(cube.s2);
		}
		if (cube.rotationY > 90 && cube.rotationY < 180)
		{
			cube.addChild(cube.s1);
			cube.addChild(cube.s3);
			cube.addChild(cube.s4);
		}
		if (cube.rotationY > 180 && cube.rotationY < 270)
		{
			cube.addChild(cube.s1);
			cube.addChild(cube.s3);
			cube.addChild(cube.s5);
		}
		if (cube.rotationY > 270 && cube.rotationY < 360)
		{
			cube.addChild(cube.s5);
			cube.addChild(cube.s6);
			cube.addChild(cube.s2);
		}
 
	}
 
 
	if (cube.rotationX > 270 && cube.rotationX < 360)
	{
		if (cube.rotationY > 0 && cube.rotationY < 90)
		{
			cube.addChild(cube.s1);
			cube.addChild(cube.s2);
			cube.addChild(cube.s4);
		}
		if (cube.rotationY > 90 && cube.rotationY < 180)
		{
			cube.addChild(cube.s3);
			cube.addChild(cube.s6);
			cube.addChild(cube.s4);
		}
		if (cube.rotationY > 180 && cube.rotationY < 270)
		{
			cube.addChild(cube.s3);
			cube.addChild(cube.s6);
			cube.addChild(cube.s5);
		}
		if (cube.rotationY > 270 && cube.rotationY < 360)
		{
			cube.addChild(cube.s5);
			cube.addChild(cube.s1);
			cube.addChild(cube.s2);
		}
 
	}
 
}
А вот мое чудо:
kubik.swf   (18.5 Кб)
Вложения
Тип файла: swf kubik.swf (18.5 Кб, 108 просмотров)

Старый 19.01.2016, 14:25
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 2  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
Правильнее сортировать грани по z-координате, а лучше отсекать нелицевые грани.Оба метода неидеальны, но для кубика подойдет.Для чего-то сложнее копать в сторону agal/готовых 3д фреймворков.

Старый 20.01.2016, 16:03
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 3  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
http://silin.astraport.ru/#AS3/zod/simple/bin
только это недо-3Д и с самого начала никуда не годилось, а сейчас при наличии всяких Alternativ и Away3D, как-то совсем странно в эту сторону копать..

Старый 20.01.2016, 16:12
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 4  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
Если человеку только кубик и нужен зачем же сразу тяжелую артиллерию подключать?

Старый 20.01.2016, 16:23
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 5  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
а дело в том, что в "тяжелой артиллерии" все проще и логичнее, чем в этом нативном псевдо 3Д, даже банальный кубик..,
это по личным ощущениям, канеш

Старый 20.01.2016, 17:46
Dmitriy154 вне форума Посмотреть профиль Отправить личное сообщение для Dmitriy154 Найти все сообщения от Dmitriy154
  № 6  
Ответить с цитированием
Dmitriy154

Регистрация: Feb 2014
Сообщений: 192
а где взять классы из import com.bit101.components.*;

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

Регистрация: Jul 2009
Сообщений: 149
Цитата:
Сообщение от Dmitriy154 Посмотреть сообщение
а где взять классы из import com.bit101.components.*;
MinimalComps

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

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

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


 


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


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