Ещё несколько часов потратил я на это дело. В результате теперь можно "устанавливать произвольное состояние кубика". Точнее, раскрашивать его, как вздумается - можно хоть весь белым сделать или вишнёвым. Единственный минус - сохранять пока нельзя. Но и это в ближайшем будущем реализуем.
читать дальше
Обнаружил забавный глюк. Когда крутишь эээ часть кубика, то боковые грани этой части смещаются одна на место другой, а верхняя грань крутится вокруг своей оси. Дык вот, пока она была одного цвета, всё было в норме. Как только цвета поменялись, я заметил, что она крутится не в ту сторону! В жизни такое же невозможно, прямо какой-то сюр - я глядел и охуевал. Стал искать в чём дело, смотрю код, всё нормально. Там был кусок кода
i1=i<<1;
i2=i1++;
Этим я хотел получить два подряд идущих числа i1, i2: чётное и нечётное. То есть, 2 и 3, 4 и 5 и так далее. Дык, блин, получалось ровно наоборот! 3 и 2, 5 и 4. Как так? Это не i2=i1+1. Тут сначала i2 приравнивается к i1, а потом i1 увеличивается на 1! Вот же ж верно говорят, вместо всяких там хитрогнутых алгоритмов надо делать выбор в пользу читаемости кода. Чем проще конструкция - тем надёжнее, тем меньше ошибок. В итоге переделал так:
i2=i<<1;
i1=i2++;
Нифига не очевидно, зато работает.
Почти по каждой функции лезу в тырнет - читать MSDN на сайте Microsoft. Ваще без тырнета я бы ещё долго всё это делал. Дык чо там "бы", когда не было тырнета, и правда до хрена времени уходило. Ставишь одну функцию - не работает, другую - не работает. Чо делать? Хз. Короче, тырнет сильно ускоряет разработку и вообще много чего. Чтоб не лазить каждый раз, решил поставить себе MSDN на диск. Версии October 2001. Почему именно её - дык у меня и C++ 6.0 тех же лет примерно. Ну, короче, думаю, всё, щас быстро буду всё находить и т.д. Ага щаз! Она как большая помойка - вываливает тебе туеву хучу всего. Занимает больше гигабайта, мне это за всю жизнь не перечитать, а найти ни хера невозможно. Говно!
Visual Studio, между прочим продолжает заёбывать. Не сильно, но всё-таки. Поставил SP6 и ещё какой-то там kb чего-то. Не помогло. Один раз программа компилилась, запускалась и выдавала ошибку. Причём, ошибка такая, что хер поймёшь в чём дело. Перезагрузил комп, нормально стало. Пару раз сама по себе - раз и упала. А когда она падает, там какие-то файлы остаются типа открытыми и надо перезагружаться или чо-то будет недоступно. У меня пару раз инфа о классах и функциях была недоступна. Это было отстойно. Так что разработка штука такая - не всегда идёт гладко.
Ещё (не знаю, откуда узнал) есть такая функция в современных средах разработки - "закомментировать код". Ну там, если кусок кода не работает, ты его быстро выключил таким способом и вуаля. Вроде бы и на месте, и не работает. Потом включил, если надо. Ну дык не нашёл я такую функцию в этой версии. В современных есть, а в той нет почему-то.
Постараюсь более подробно освещать свои достижения