kashey, Не по HSB должно 0 100 100 для красного быть, HSB вроде как по процентам считается. Это даже не LAB. Здесь действительно Blue Green Red все вывернуто. все серо и пусто
kashey, Не по HSB должно 0 100 100 для красного быть, HSB вроде как по процентам считается. Это даже не LAB. Здесь действительно Blue Green Red все вывернуто.
ff равно 255, 00 - 0 в десятичной системе. Поскольку H (цветовой тон) считывается первым (ff - 255), а остальные значения имеют максимум (от 0 до 1, от 0 до 100%), можно предположить что это все таки HSB, с учетом того, что гм принимает значения яркости и контрастности в обратном порядке (0 это 100 а 1 это 0).
kashey, Не не не, я поэкспериментировал с подобной конструкцией. draw_set_color($FF0000); Она отображает цвет зеркально, то есть если написать (0000FF) то получим искомый красный, хотя это на самом деле индекс синего, так же и с другими цветами. Здесь просто пары у них вывернуты. Первая пара обозначает blue, вторая green, третья red, хотя должно быть наоборот. Таким образом мы наблюдаем лаг самой функции, просто недоработка программистов GML, В целом с учетом перевернутости работать можно, только проще в этом случае писать вот так draw_set_color(make_color_rgb(red,green,blue)), здесь у них уже все правильно, то есть голову забивать себе не нужно. все серо и пусто
Решил изучить арканоид как игру. Есть множество исходников и примеров, это все хорошо и интересно, но имеем одно но! Это битка. Мячик во всех исходниках и примерах движется по зубодробительно предсказуемой траектории, то есть стукнувшись о битку например летит на 45 градусов вправо, соответственно стукнувшись снова он полетит на 45 градусов влево, попадаются также моменты когда он попадает таким образом что начинает лететь вертикально вверх и тут можно спокойно выходить из игры, так как мяч будет все время отбиваться только вертикально вверх. В целом вся игра сводится к тому чтобы подставлять в нужный момент битку под мячик, затем медитативно наблюдать как он в сотый раз облетает комнату по все той же траектории. Это все изъян функции action_bounce(true,true);.
На самом деле в классическом арканоиде игрок сам управляет траекторией мячика, а точнее подставляет битку специальным образом чтобы мяч отражался в нужную сторону суть сводится к чему:
Попадая на край битки, мячик отражается в ту сторону, в какой край он попал, и чем ближе к краю попадение, тем меньше угол отскока мячика относительно битки.
Я хреновый программист, примерно представляю, что здесь расписывается большая портянка кода с использованием наверное тригонометрии. Не знаю даже с какого бока к решению этой проблемы подойти. Поможите кто чем может все серо и пусто
Можно просто при ударе мяча об биту проверять расстояние от мяча до центра биты, и установить зависимость угла отражения от этого расстояния. Сейчас пример сделать не могу, к вечеру сделаю, если ещё надо будет, но в общем то, ничего там сложного нет.
Можно просто при ударе мяча об биту проверять расстояние от мяча до центра биты, и установить зависимость угла отражения от этого расстояния.
Ага легко! По причине своей клинической тупости через всего три дня жестокого мозгоштурма (а точнее тупого подбора функций и значений) я смогу выдать громоздкую лагованую конструкцию. При етом загажу всю эту тему тупейшими вопросами
Всё настраивается в столкновении шара с битой. Моя "формула", конечно, совсем не универсальна, так что её переписать желательно. Можно сделать расчет через проценты, тогда все будет нормально.
LunarPixel, Ага спасибо, как то через пень колоду становится несколько понятней. Все равно посмотрел на этот кусок кода глазами полного идиота. Попытался поиграть с циферками, чтобы углы сильнее закладывались при столкновении. Что то не получается. Сейчас буду плотнее заниматься.
if x<other.x direction=120+distance_to_point(other.x, other.y)
if x=other.x direction=88
Добавлено (02.04.2012, 18:28) --------------------------------------------- Опять головоломка. Как закончить комнату, если все кирпичи (объекты) в ней уничтожены? Просто не знаю по какой функции проводить проверку. Все усугубляется еще тем что имеется куча различных кирпичей (объектов) и условие окончание комнаты, что все что можно там раздолбано.
Опять головоломка. Как закончить комнату, если все кирпичи (объекты) в ней уничтожены? Просто не знаю по какой функции проводить проверку. Все усугубляется еще тем что имеется куча различных кирпичей (объектов) и условие окончание комнаты, что все что можно там раздолбано.
Создай родительный объект для всех кирпичей и уже проверяй с ним: if instance_number(obj_block_papa)=0 {room_goto_next()} где instance_number - проверяет количество заданных объектов в комнате и если равно истине, то выполняется некое действие!
Сообщение отредактировал Alexis-63 - Понедельник, 02 Апреля 2012, 18:41
Alexis-63, Родительский объект, в чем его глубокая суть? Каким образом он создается? Где вообще про это почитать можно? Как он вообще привязывается к объектам? все серо и пусто
Ferrumel, Допустим у тебя в игре есть масса чем-то схожих объектов. Допустим такими объектами будут кирпичи и их у тебя достаточно много. Тогда, например, если тебе потребуется разом их удалить, то вместо того, чтобы удалять каждый по отдельности (представь какой это геморой удалять допустим 150 кирпичей) можно создать один объект - родитель, объединяющий все кирпичи и удалять лишь его. Объясню подробнее: Имеем три кирпича: ob_block_blue; ob_block_green; ob_block_red Для того, чтобы разом их удалить мы создадим ob_block_papa и зададим каждому кирпичу этого родителя
После этого чтобы удалить все кирпичи мы будем использовать: with(ob_block_papa) {instance_destroy()} И да, родительские объекты в комнату ставить не обязательно!
Создается объект-родитель так же как и обычный. Притом он может хранить переменные, которые будут применяться ко всем дочерним объектам и вообще совершать любые действия, которые будут уже выполнять дочерние!
Насчет почитать, даже не знаю. Я научился этому копаясь в исходниках!
Сообщение отредактировал Alexis-63 - Понедельник, 02 Апреля 2012, 19:24
Alexis-63, Спасибо, в принципе понятно. А задавать родителя в свойствах объекта я так понял, где то видел это там.
Quote
Насчет почитать, даже не знаю. Я научился этому копаясь в исходниках!
Исходники тоже сгодились бы))) Имею их кучу, но в основном там одни базовые моменты. Суть родитель-подчиненный, нигде не встречал и не были нужны. Это вроде относится не только к гмл, а еще и к базовым основам программирования если не ошибаюсь. А я дуб дубом, все приходится на своем опыте раскрывать, да тут на форуме узнавать. все серо и пусто
Ferrumel, Да, задавай родителя в свойствах объекта. Вот, сделал для тебя исходник, показывающий суть родительских объектов. В объекте ob_block_papa задано движение по оси y, а остальным объектам задан сей родитель. В итоге получаем, что за место трех строчек кода написали лишь одну и движутся все объекты. Исходник - Пример применения объектов-родителей
Alexis-63, Ага, все понял, заработало. Жаль раньше такого не знал. Такие громоздкие конструкции с глобальными переменными сооружал, просто ужас.
Добавлено (03.04.2012, 13:27) --------------------------------------------- Народ, есть у кого нибудь исходники и примеры работы с частицами? Поделитесь если не лень))
все серо и пусто
Сообщение отредактировал Ferrumel - Вторник, 03 Апреля 2012, 12:48