PointJS - The u Chat | Александр Птичкин
رفتن به کانال در Telegram
1. Сайт: pointjs.ru / pointjs.io 2. Наш мессенджер: theuchat.com 3. Уроки анимации: mult-uroki.ru 4. Болталка: @mult_uroki_ru 5. MMORPG игра: @Zombie_Tap_bot 6. Сотрудничество: @multuroki 7. Наши игры: https://t.me/addstickers/Zombie_Tap
نمایش بیشتر477
مشترکین
اطلاعاتی وجود ندارد24 ساعت
+17 روز
اطلاعاتی وجود ندارد30 روز
آرشیو پست ها
Итак. 20 танков двигаются, сталкиваются и никто ни на кого не заезжает и не застревает.
Как сталкивать вражеские танки между собой ?
Сегодня решал техническую задачу - потратил на неё примерно часа полтора. Повторюсь, основное в программировании - это идея а не код.
Так вот в чём проблема. Когда танки появляются, может случится так, что новый танк появится вместе где проходит другой. А значит сработает условие столкновения между двумя танками. По условию столкновения один танк должен встать чётко к границе другого танка и остановиться. При этом никогда один танк в другой не попадает и не попадет по определению. Работает та же механика что и в физике движка.
Но если мы уже попали внутрь танка непонятно куда нас выкинет. Может и через стенку перекинуть если всё это близко к границе. Или кинуть на стенки блоков и куда дальше унесет одному богу известно. Нет, ну и мне тоже, на то условие которое написано в коде первым 😁
Вот в этом и проблема. Как сделать столкновение танков но без столкновения когда они уже друг в друге.
Решение нашлось такое.
Условия столкновения танков окутать в условие дистанции. Если по каким-то причинам дистанция между танками уже стала маленькой значит пока не сталкивать и ждать пока танки выйдут друг из друга.
Ну что ж, ещё один вечер работы и клиентская часть игры почти сделана. Осталось сделать красивое появление, взрывы и отображение счёта и жизней.
Сегодня попробовал под игру использовать генератор уровня другого типа (как делали ранее). Под каждую задачу ищу лучшее решение. И вот результаты.
Плюсы:
1. Карта уровня созданная через Level.pjs весит 80.4 КБайт. А по старинке весит 873 Байта. Разница ощутимая.
2. Быстрое создание симметричной сцены просто дубликатом. Сделал пол сцены - скопировал что было выше и все.
3. Отсутствие json файла - а значит меньше нагрузка и быстрее скорость подгрузки.
Минусы:
Чуть дольше делать, но спустя 7 лет ручного написания кода нам не привыкать 😊
Решил в игре про танки не обучать врагов реальным атакам и слежкам за игроком. Все оставил на случай рандома. Только задал приоритет движения(стремления) вниз к орлу. Кстати, уже появился моб. Даже не обученный уже снес пол сцены и орла 😦
Сейчас приготовили с ребёнком печеньки. Отгадайте какая моя? 😊
Многие могут подумать по фотографии, что пост вообще не по теме. Но на самом деле этот пост напрямую относятся к созданию игр. Программирую я игры ночью по часика два в день когда ребёнок уже спит и тишина есть и никто не мешает. Оставшиеся 80% дня я трачу на придумывание правильной идеи для программирования. Потому что идея - это основное. Код можно и не знать. Но если идея нерабочая, никакое знание кода не поможет.
Ответ на часто задаваемый вопрос: почему в играх не пользуется код с уроков, ведь всё уже давно было (про танки).
Да, у меня есть исходники всех уроков и так было бы ещё быстрее. Но не использую я их по другой причине.
Я люблю разрабатывать код каждой игры с нуля. Тем самым каждый раз можно проверить разные варианты и получить наилучший или даже что-то изобрести.
Начал разрабатывать врагов танков. 5 лет назад я бы создал вручную массив из 20 или 40 танков (для мультиплеера). Сейчас планирую сделать массив из просто 40 цифр где каждые пять повторяются и то на автомате сделаю. А каждая цифра - это индекс фотографии танка. Буду выбирать четыре случайных числа из массива и согласно выпавшему числу инициализировать объект на сцене, и после этого удалять эти цифры из массива из массива.
И так, два вечера работы и готова основная механика. Сегодня буду делать мобов
Сегодня ночью создал новые контроллеры Touch касания для движка PointJS ориентированные на мобильные игры и на множественные касания (хоть 1000 сделай на сцене) - их события пересекаться не будут.
Вторая мобила занята - не могу снять видео. Завтра покажу как Танк гоняет 😈
Ну а тем временем, в этом году уже в двух государственных учебных заведениях начнут вести занятия в среде разработки игр PointJS IDE. Вовремя мы подготовили договор 😎. А вчера появился и третий возможный университет (школа).
Разработчики "Первого Российского движка" смотрю гордятся что меня заблокировали и не стесняются про это высказываться в таком формате...а это уже не красиво. Думают что прикрываясь ВК можно делать всё что угодно. Ну до поры до времени...
Сейчас как "Борщь" будут меня ещё 5 лет потом вспоминать 😎
Разработчики "Первого Российского движка" смотрю гордятся что меня заблокировали и не стесняются про это высказываться в таком формате...а это уже не красиво. Думают что прикрываясь ВК можно делать всё что угодно. Ну до поры до времени...
Сейчас как "Борщь" будут меня ещё 5 лет потом вспоминать 😎
Сегодня поднял все грамоты и награды и переоформил раздел Достижения на сайте PointJS. Смотрится теперь солидно ☺️
Сегодня ездил к юристу, забирал сертификат регистрации программы. А он мне ещё на день рождения книгу подарил. Вот буду изучать как захватывать мир 😈
А вот и хорошие новости подкатили. Теперь мы в реестре Отечественного ПО 😎
Бильярд доделал. Заработал на заказе 100к минус налог самозанятого 4%. Неплохо так за неделю. Скоро уже покажу. А пока начал делать следующий заказ - танчики.
Как сталкивать шарики?
Обычные столкновения через функцию isStaticIntersect не подойдут, так как учитываются сталикбоксы, которые чаще всего квадратные или прямоугольные.
Для столкновения шаров удобно использовать функцию getDistance, с помощью которой можно получать дистанцию до объекта, и если она будет меньше диаметра объекта то значит мы близко и можно сталкиваться.
И на скрине это четко видно, что шарики коснулись статикбоксами, но не сталкиваются так как идет проверка дистанции между ними.
А вот от стенок шарики отскакивают через проверку статикбоксов.
Когда жил с родителям, в детстве с папой смотрели снукер (у нас было спутниковое кабельное ТВ). Все тогда придумывали себе кумиров. Моим был Ронни О’Салливан. Посути, это ТВ было дверью в мир (компов то было). Много программ про животных, научных каналов, зарубежная музыка (OZZY OSBOURNE...) и т.д. А ночью на этих же частотах этих же каналов транслировали порно 😁.
Смотрю, что не так разбивается пирамида при ударе в лоб. Чуть отодвинул шары друг от друга, чтобы энергия не так резко распределялась.
Добился полного соответствия механики игры с реальной жизнью (той что я помню по крайней мере).
7 лет назад я даже не знал как сделать простейшую игру - сейчас же повторяю механику настоящих игр и переношу их в программный код. 😎
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
