This media is not supported in your browser
VIEW IN TELEGRAM
Часто слышу вопросы про мобильную адаптацию. Можно ли на PointJS ее сделать. Да легко! Просто получите ширину экрана командой:
И поделите самый большой элемент сцены (его ширину) на ширину экрана. Получите коэффициент, на который и надо делить все элементы сцены. Например, так за позиционированы шарики на сцене.
Где s это поправочный коэффициент :
game.getWH().w;
И поделите самый большой элемент сцены (его ширину) на ширину экрана. Получите коэффициент, на который и надо делить все элементы сцены. Например, так за позиционированы шарики на сцене.
var ball4 = game.newImageObject({
file: "resources/ball4.png",
x: WH.w/2-(50/(s*1.3))+32/s,
y: 1280/s-920/s,
w: 50/s*1.3,
h: 50/s*1.3,
userData: {
moving: false,
velocity: point(0, 0)
}
})
Где s это поправочный коэффициент :
var s = 704/WH.w;
👍4⚡1🔥1
Когда жил с родителям, в детстве с папой смотрели снукер (у нас было спутниковое кабельное ТВ). Все тогда придумывали себе кумиров. Моим был Ронни О’Салливан. Посути, это ТВ было дверью в мир (компов то было). Много программ про животных, научных каналов, зарубежная музыка (OZZY OSBOURNE...) и т.д. А ночью на этих же частотах этих же каналов транслировали порно 😁.
Смотрю, что не так разбивается пирамида при ударе в лоб. Чуть отодвинул шары друг от друга, чтобы энергия не так резко распределялась.
Добился полного соответствия механики игры с реальной жизнью (той что я помню по крайней мере).
7 лет назад я даже не знал как сделать простейшую игру - сейчас же повторяю механику живых игр и переношу их в программный код. 😎
Смотрю, что не так разбивается пирамида при ударе в лоб. Чуть отодвинул шары друг от друга, чтобы энергия не так резко распределялась.
Добился полного соответствия механики игры с реальной жизнью (той что я помню по крайней мере).
7 лет назад я даже не знал как сделать простейшую игру - сейчас же повторяю механику живых игр и переношу их в программный код. 😎
👍7🔥2☃1😁1
Как сталкивать шарики?
Обычные столкновения через функцию isStaticIntersect не подойдут, так как учитываются сталикбоксы, которые чаще всего квадратные или прямоугольные.
Для столкновения шаров удобно использовать функцию getDistance, с помощью которой можно получать дистанцию до объекта, и если она будет меньше диаметра объекта то значит мы близко и можно сталкиваться.
И на скрине это четко видно, что шарики коснулись статикбоксами, но не сталкиваются так как идет проверка дистанции между ними.
А вот от стенок шарики отскакивают через проверку статикбоксов.
Обычные столкновения через функцию isStaticIntersect не подойдут, так как учитываются сталикбоксы, которые чаще всего квадратные или прямоугольные.
Для столкновения шаров удобно использовать функцию getDistance, с помощью которой можно получать дистанцию до объекта, и если она будет меньше диаметра объекта то значит мы близко и можно сталкиваться.
И на скрине это четко видно, что шарики коснулись статикбоксами, но не сталкиваются так как идет проверка дистанции между ними.
А вот от стенок шарики отскакивают через проверку статикбоксов.
👍7
Сегодня поднял все грамоты и награды и переоформил раздел Достижения на сайте PointJS. Смотрится теперь солидно ☺️
👍10🏆3👻1
Разработчики "Первого Российского движка" смотрю гордятся что меня заблокировали и не стесняются про это высказываться в таком формате...а это уже не красиво. Думают что прикрываясь ВК можно делать всё что угодно. Ну до поры до времени...
Сейчас как "Борщь" будут меня ещё 5 лет потом вспоминать 😎
Сейчас как "Борщь" будут меня ещё 5 лет потом вспоминать 😎
😁5🗿1
This media is not supported in your browser
VIEW IN TELEGRAM
И так, два вечера работы и готова основная механика. Сегодня буду делать мобов
Получил тут в комментарии отзыв типа "И на такую хрень потрачено два вечера?".
Надо дать комментарии, а то есть народ , который до сих пор не понимает принцип создания игр. На сам код рабочей игры потратил пол часа. Два дня потрачено на верно выстроенный концепт игры готовый к публикации.
Получил тут в комментарии отзыв типа "И на такую хрень потрачено два вечера?".
Надо дать комментарии, а то есть народ , который до сих пор не понимает принцип создания игр. На сам код рабочей игры потратил пол часа. Два дня потрачено на верно выстроенный концепт игры готовый к публикации.
❤3👍3🔥2
Начал разрабатывать врагов танков. 5 лет назад я бы создал вручную массив из 20 или 40 танков (для мультиплеера). Сейчас планирую сделать массив из просто 40 цифр где каждые пять повторяются и то на автомате сделаю. А каждая цифра - это индекс фотографии танка. Буду выбирать четыре случайных числа из массива и согласно выпавшему числу инициализировать объект на сцене, и после этого удалять эти цифры из массива.
👍4
Ответ на часто задаваемый вопрос: почему в играх не пользуется код с уроков, ведь всё уже давно было (про танки).
Да, у меня есть исходники всех уроков и так было бы ещё быстрее. Но не использую я их по другой причине.
Я люблю разрабатывать код каждой игры с нуля. Тем самым каждый раз можно проверить разные варианты и получить наилучший или даже что-то изобрести.
Да, у меня есть исходники всех уроков и так было бы ещё быстрее. Но не использую я их по другой причине.
Я люблю разрабатывать код каждой игры с нуля. Тем самым каждый раз можно проверить разные варианты и получить наилучший или даже что-то изобрести.
👍4
Сейчас приготовили с ребёнком печеньки. Отгадайте какая моя? 😊
Многие могут подумать по фотографии, что пост вообще не по теме. Но на самом деле этот пост напрямую относятся к созданию игр. Программирую я игры ночью по часика два в день когда ребёнок уже спит и тишина есть и никто не мешает. Оставшиеся 80% дня я трачу на придумывание правильной идеи для программирования. Потому что идея - это основное. Код можно и не знать. Но если идея нерабочая, никакое знание кода не поможет.
Многие могут подумать по фотографии, что пост вообще не по теме. Но на самом деле этот пост напрямую относятся к созданию игр. Программирую я игры ночью по часика два в день когда ребёнок уже спит и тишина есть и никто не мешает. Оставшиеся 80% дня я трачу на придумывание правильной идеи для программирования. Потому что идея - это основное. Код можно и не знать. Но если идея нерабочая, никакое знание кода не поможет.
👍6❤2
Сегодня попробовал под игру использовать генератор уровня другого типа (как делали ранее). Под каждую задачу ищу лучшее решение. И вот результаты.
Плюсы:
1. Карта уровня созданная через Level.pjs весит 80.4 КБайт. А по старинке весит 873 Байта. Разница ощутимая.
2. Быстрое создание симметричной сцены просто дубликатом. Сделал пол сцены - скопировал что было выше и все.
3. Отсутствие json файла - а значит меньше нагрузка и быстрее скорость подгрузки.
Минусы:
Чуть дольше делать, но спустя 7 лет ручного написания кода нам не привыкать 😊
Плюсы:
1. Карта уровня созданная через Level.pjs весит 80.4 КБайт. А по старинке весит 873 Байта. Разница ощутимая.
2. Быстрое создание симметричной сцены просто дубликатом. Сделал пол сцены - скопировал что было выше и все.
3. Отсутствие json файла - а значит меньше нагрузка и быстрее скорость подгрузки.
Минусы:
Чуть дольше делать, но спустя 7 лет ручного написания кода нам не привыкать 😊
🔥5👍2🏆1
This media is not supported in your browser
VIEW IN TELEGRAM
Ну что ж, ещё один вечер работы и клиентская часть игры почти сделана. Осталось сделать красивое появление, взрывы и отображение счёта и жизней.
🏆5👍3🤗1
Media is too big
VIEW IN TELEGRAM
Тестирование мобов на скорости. Если через пол часа не потеряю ни одного танка значит система столкновений работает четка. С учетом что границы сцены 1px. Всегда делаю такие проверки в играх на движение.
🔥5👍2
Как сталкивать вражеские танки между собой ?
Сегодня решал техническую задачу - потратил на неё примерно часа полтора. Повторюсь, основное в программировании - это идея а не код.
Так вот в чём проблема. Когда танки появляются, может случится так, что новый танк появится вместе где проходит другой. А значит сработает условие столкновения между двумя танками. По условию столкновения один танк должен встать чётко к границе другого танка и остановиться. При этом никогда один танк в другой не попадает и не попадет по определению. Работает та же механика что и в физике движка.
Но если мы уже попали внутрь танка непонятно куда нас выкинет. Может и через стенку перекинуть если всё это близко к границе. Или кинуть на стенки блоков и куда дальше унесет одному богу известно. Нет, ну и мне тоже, на то условие которое написано в коде первым 😁
Вот в этом и проблема. Как сделать столкновение танков но без столкновения когда они уже друг в друге.
Решение нашлось такое.
Условия столкновения танков окутать в условие дистанции. Если по каким-то причинам дистанция между танками уже стала маленькой значит пока не сталкивать и ждать пока танки выйдут друг из друга.
Сегодня решал техническую задачу - потратил на неё примерно часа полтора. Повторюсь, основное в программировании - это идея а не код.
Так вот в чём проблема. Когда танки появляются, может случится так, что новый танк появится вместе где проходит другой. А значит сработает условие столкновения между двумя танками. По условию столкновения один танк должен встать чётко к границе другого танка и остановиться. При этом никогда один танк в другой не попадает и не попадет по определению. Работает та же механика что и в физике движка.
Но если мы уже попали внутрь танка непонятно куда нас выкинет. Может и через стенку перекинуть если всё это близко к границе. Или кинуть на стенки блоков и куда дальше унесет одному богу известно. Нет, ну и мне тоже, на то условие которое написано в коде первым 😁
Вот в этом и проблема. Как сделать столкновение танков но без столкновения когда они уже друг в друге.
Решение нашлось такое.
Условия столкновения танков окутать в условие дистанции. Если по каким-то причинам дистанция между танками уже стала маленькой значит пока не сталкивать и ждать пока танки выйдут друг из друга.
👍3🔥2🏆1
This media is not supported in your browser
VIEW IN TELEGRAM
Итак. 20 танков двигаются, сталкиваются и никто ни на кого не заезжает и не застревает. Кстати видно, что мобы столпились справа. Это проверка того, что им задан приоритет двигаться к цели.
🔥7👍1