Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 27.11.2010, 23:29   #1
WhiteBlack
Нуждающийся
 
Регистрация: 11.07.2010
Сообщений: 61
Написано 3 полезных сообщений
(для 3 пользователей)
кубик рубика

если у кого-то есть свободное время и нечем заняться, посмотрите что здесь не так, я с этим сижу уже весь день, скоро стану вот таким -
когда включите нажмите стрелку вправо; не обращайте внимания на большучесть кода в некоторых местах, это я оптимизирую, мне главное понять почему при повторном нажатии на стрелку вправа происходит.... то что происходит (я пробовал и translate и moveentity все равно двигает в одну и ту же сторону, ну вобщем гляньте кому не лень
Вложения
Тип файла: rar кубик Рубика.rar (6.7 Кб, 553 просмотров)
(Offline)
 
Ответить с цитированием
Старый 27.11.2010, 23:48   #2
DeeJex
Разработчик
 
Аватар для DeeJex
 
Регистрация: 24.02.2010
Адрес: Новороссийск
Сообщений: 485
Написано 112 полезных сообщений
(для 329 пользователей)
Ответ: кубик рубика


Давненько не видел такой быдлокод...

посмотрите что здесь не так
Вот что: для поворота кубов юзай пивоты и парентинг(читай про это в хелпе)
__________________
299 792 458
(Offline)
 
Ответить с цитированием
Старый 27.11.2010, 23:50   #3
pepel
Мастер
 
Аватар для pepel
 
Регистрация: 23.09.2009
Адрес: ленобласть
Сообщений: 1,189
Написано 447 полезных сообщений
(для 2,526 пользователей)
Ответ: кубик рубика

чет способ ваще помоему ущербный

мне видится такая схема: вращать отдельные части левой кнопкой мыши, правой кнопкой вращать весь кубик
естессно вращать можно по 90 градусов

чтобы прокрутить одну грань из 9ти кубиков присваивать им entityparent к пивоту , который находится в центре, а потом отцеплять его .
и при этом использовать трехмерный массив для хранения кубиков
(Offline)
 
Ответить с цитированием
Старый 30.11.2010, 13:55   #4
WhiteBlack
Нуждающийся
 
Регистрация: 11.07.2010
Сообщений: 61
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: кубик рубика

сделал через пивоты, да полегче(намного), просто я планировал двигать каждый кубик, мне казалося так интереснее
осталася одна проблема
......
Global 
pivtop=CreatePivot()
.....
repeat
.....
 If 
KeyHit(205Then
      oldyaw
(1)=EntityYaw(pivtop)
      
flag=1
      
For i=1 To 9
       EntityParent
(cubes(i), pivtop)
      
Next
    End 
If
    
    
TurnPiv() 
.....
until keyhit(1)

Function 
TurnPiv()
    If 
flag=1 Then
       
If EntityYaw(pivright)<oldyaw(1)+90 Then
          TurnEntity pivright
00.50
       
Else
          
flag=0
       End 
If  
    
End If
End Function 
при первом повороте все хорошо, верхняя сторона останавливается, но при втором нажатии она начинает вращаться бесконечно. Почему так?
я же вроде при каждом нажатии сохраняю текущий угол поворота
(Offline)
 
Ответить с цитированием
Старый 03.12.2010, 23:10   #5
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: кубик рубика

Открой дебаггер и посмотри какие значения принимают переменные. Это поможет тебе понять, в чём дело.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 04.12.2010, 11:23   #6
WhiteBlack
Нуждающийся
 
Регистрация: 11.07.2010
Сообщений: 61
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: кубик рубика

Сообщение от ABTOMAT Посмотреть сообщение
Открой дебаггер и посмотри какие значения принимают переменные. Это поможет тебе понять, в чём дело.
а где взять дебаггер? у меня был старый из твоих уроков по физиксу, но у меня стоит Windows 7 и он почему то не запускается, даже от администратора
(проблему с бесконечными поворотами я решил, но появились новые поэтому он бы мне помог)
(Offline)
 
Ответить с цитированием
Старый 04.12.2010, 16:28   #7
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: кубик рубика

Не этот дебаггер. Поставь галочку у Program->Debug Enabled
(Offline)
 
Ответить с цитированием
Старый 04.12.2010, 16:52   #8
WhiteBlack
Нуждающийся
 
Регистрация: 11.07.2010
Сообщений: 61
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: кубик рубика

Сообщение от baton4ik Посмотреть сообщение
Не этот дебаггер. Поставь галочку у Program->Debug Enabled
а как это мне поможет, у меня же нет ошибки в синтаксе кода, она где то в логике
при повороте некоторые кубики имеют координаты по оси Х что то вроде 2,00445е-6.00
откуда это может браться?
(Offline)
 
Ответить с цитированием
Старый 04.12.2010, 16:55   #9
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: кубик рубика

Вот это и надо смотреть дебаггером! Ставь брекпойнты и смотри значения переменных, таким образом ища логическую ошибку.
(Offline)
 
Ответить с цитированием
Старый 04.12.2010, 20:27   #10
WhiteBlack
Нуждающийся
 
Регистрация: 11.07.2010
Сообщений: 61
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: кубик рубика

вот что у меня получилось(во вложении)

так как код получился довольно большым, я не прошу вникать в код мне бы только узнать ваши предположения на счет появления координат у верхних кубиков
управление:
повороты по горизонтали:
P(англ)-влево       Х(русское)-вправо
Ж                        Э
Ю                        
,

по вертикали
U  и J
I и K
O и L 
попробуйте нажать "Х" несколько раз и посморите на координаты верхних кубиков там появляются странные координаты
(может это связано с припэрентиванием и отпэрениванием к пивотам?? )
Вложения
Тип файла: rar кубик Рубика.rar (7.6 Кб, 535 просмотров)
(Offline)
 
Ответить с цитированием
Старый 04.12.2010, 20:29   #11
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: кубик рубика

WhiteBlack, ты делал то, что описано в посте №9 ?
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 04.12.2010, 20:34   #12
WhiteBlack
Нуждающийся
 
Регистрация: 11.07.2010
Сообщений: 61
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: кубик рубика

Сообщение от ABTOMAT Посмотреть сообщение
WhiteBlack, ты делал то, что описано в посте №9 ?
да, там какая то фигня извинюясь за выражение, дебаггер после нескольких поворотов говорит, что максимальное значение у из всех кубиков равно 520(хотя там же стоят кубики с Х=540), а "Y" становится 560 хотя должно быть 540
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ABTOMAT (05.12.2010)
Старый 04.12.2010, 21:16   #13
WhiteBlack
Нуждающийся
 
Регистрация: 11.07.2010
Сообщений: 61
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: кубик рубика

полазил с дебаггером, нашел такую ерунду: после поворота ЗНАЧЕНИЕ координаты Y увеличивается на 10, при этом реальные координаты остаются прежними, то есть он никуда не сдвигается
при этом вспомнил, что у меня ест вот такая строчка
PositionEntity pivvertEntityX(cubes(5)), EntityY(cubes(5))+10EntityZ(cubes(5)) 
pivvert - это пивот, к которому припэрентиваются кубики
такое ощущение, что вот эта десятка прибавляется, но если ее не прибавлять, тогда пивот получается не по центру и кубики вращаются не точно
что то я не понал, если что то припэрентить, а потом отпэрентить, координаты вроде должны быть те же? или нет?

Последний раз редактировалось WhiteBlack, 05.12.2010 в 12:50.
(Offline)
 
Ответить с цитированием
Старый 05.12.2010, 22:39   #14
Crayzi
ПроЭктировщик
 
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений
(для 25 пользователей)
Ответ: кубик рубика

Сообщение от WhiteBlack Посмотреть сообщение
что то я не понал, если что то припэрентить, а потом отпэрентить, координаты вроде должны быть те же? или нет?
Помойму блитз чуть неадэкватен в этом вопросе, юзай так - если хош глобальную координату то EntityX#(cubes(5),True), есди локальную то EntityX#(cubes(5),False).
Цитата из фака блитза:
EntityX# ( entity[,global] )
Параметры
entity = указатель объекта 
global (не обязательно)= True для глобальных координат, False - для локальных. По умолчанию False.
(Offline)
 
Ответить с цитированием
Старый 06.12.2010, 02:16   #15
RBK
Знающий
 
Аватар для RBK
 
Регистрация: 06.12.2010
Адрес: Луганск
Сообщений: 252
Написано 112 полезных сообщений
(для 166 пользователей)
Ответ: кубик рубика

Запустил программу. После нескольких вращений кубик развалился.
Код слишком запутан. Попробуй вращать стороны с помощью отдельных
функций.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com