Результаты поиска
| |
MagicHero | Дата: Пятница, 26 Июня 2020, 15:58 | Сообщение # 201 | Тема: GMS 2 TDS Неправильный полет пули. |
участник
Сейчас нет на сайте
| Я там немного дополнил ответ выше.
|
|
| |
MagicHero | Дата: Пятница, 26 Июня 2020, 15:39 | Сообщение # 202 | Тема: GMS 2 TDS Неправильный полет пули. |
участник
Сейчас нет на сайте
| Противник же едет по какому то пути, раз он едет а значит нужно просто image_angle основания танка приравнивать к direction, т.е. просто прописать в степе основания танка image_angle = direction. А в башне image_angle = point_direction(x , y , x_координаты_танка_игрока, y_координаты_танка_игрока ); и соответственно создавать пули которыми он стреляет по dir = имя_обьекта_башни_танка_противника.image_angle а далее для выстрела код почти тот же что и у твоего основного танка. А чтобы противник за километр не крутил башней на танк игрока сделать проверку на расстояние до игрока, прописать в степе башни танка противника:
Код if distance_to_object(обьект_основания_игрока) < range { image_angle = point_direction(x , y , x_координаты_танка_игрока, y_координаты_танка_игрока ); } } else { код выравнивания угла поворота башни к углу поворота основания танка }
где range расстояние до игрока при котором противник начнет реагировать
Хотя так башня будет моментально поворачиваться и лучше сделать код на плавный поворот к игроку.
Сообщение отредактировал MagicHero - Пятница, 26 Июня 2020, 16:02 |
|
| |
MagicHero | Дата: Пятница, 26 Июня 2020, 15:00 | Сообщение # 203 | Тема: GMS 2 TDS Неправильный полет пули. |
участник
Сейчас нет на сайте
| Цитата trespass91 ( ) Вот эту часть вообще не понял =( Нарисована должна вот так https://www.google.ru/url?sa=i&rct=j&q=&esrc=s&source=imgres&cd=&cad=rja&uact=8&ved=2ahUKEwjfrsHstZ_qAhVU6qYKHbxSAzIQjRx6BAgBEAQ&url=https%3A%2F%2Fwww.hotpng.com%2Ffree-png-clipart-ezmgt&psig=AOvVaw17dr5R1aF23mCTRRRoO-dL&ust=1593258843272431 взял пример с гильзой чтобы было точно понятно направление.
Цитата MagicHero ( ) для плавного поворота такой код у меня:
pointdir = point_direction (x, y, mouse_x, mouse_y);//Плавное вращение башни танка. image_angle += sin(degtorad(pointdir - image_angle)) * aim_speed;
Если для плавного поворота у тебя есть отдельный код то создание пули неверно что ты написал т.к. при смещение мыши пуля не будет создаваться в дуле пока дуло не остановится по координатам мыши. В общем тебе надо написать так (я там уже добавил код для поворота пули)
Код var dir = obj_tank_cannon.image_angle; // ИЗМЕНИТЬ if (mouse_check_button(mb_left)) { if (canshoot = false) { canshoot = true var x_offset = lengthdir_x(83, dir); var y_offset = lengthdir_y(83, dir); var temp = instance_create_depth(x + x_offset, y + y_offset, 1, obj_bullet); with (temp) { speed = 5; direction = obj_tank_cannon.image_angle; image_angle = obj_tank_cannon.image_angle; // для поворота пули по направлению полета } alarm[0] = room_speed * shoot_delay; audio_play_sound(sound_tank_shot, 1, 0); }
Сообщение отредактировал MagicHero - Пятница, 26 Июня 2020, 15:01 |
|
| |
MagicHero | Дата: Пятница, 26 Июня 2020, 14:14 | Сообщение # 204 | Тема: GMS 2 TDS Неправильный полет пули. |
участник
Сейчас нет на сайте
| Цитата trespass91 ( ) var dir = point_direction(x , y , mouse_x , mouse_y ); Это ты находишь угол относительно танка(башни) ? т.е. x и y это координаты башни? я не знаю равны ли у тебя координаты основания танка и башни, но если не равны то в коде var dir = point_direction(x , y , mouse_x , mouse_y ); нужно указывать именно координаты башни танка. И согласно ниже коду выходит что башня у тебя поворачивается мгновенно и всегда смотрит туда куда направлена мышь, т.к. ничего для плавного поворота башни к координатам мыши в коде нет.
Цитата trespass91 ( ) var temp = instance_create_depth(x + x_offset, y + y_offset, 1, obj_bullet); x и y как выше писал это должны быть координаты башни танка.
Цитата trespass91 ( ) Пуля летит верно из дула,но при этом спрайт разворачивается в противоположную сторону,то есть летит как бы задом. ты не прописал image_angle в этом коде
{ speed = 5; direction = obj_tank_cannon.image_angle; image_angle = obj_tank_cannon.image_angle; // добавить }
Вдобавок полю нужно правильно нарисовать а именно по направлению direction 0 т.е. горизонтально слева-направо (слева-зад, справа-перед)
Сообщение отредактировал MagicHero - Пятница, 26 Июня 2020, 14:17 |
|
| |
MagicHero | Дата: Пятница, 26 Июня 2020, 13:45 | Сообщение # 205 | Тема: GMS 2 TDS Неправильный полет пули. |
участник
Сейчас нет на сайте
| Цитата trespass91 ( ) Вас понял.Вроде смотрел и переменная эта была.Буду дальше смотреть.
Я не успел дописать, сохранил т.к. неудобно было писать на планшете, чтобы закончить на компе. Выше посмотри там дописал текст )
|
|
| |
MagicHero | Дата: Пятница, 26 Июня 2020, 13:31 | Сообщение # 206 | Тема: GMS 2 TDS Неправильный полет пули. |
участник
Сейчас нет на сайте
| dir это direction (угол поворота) спрайта башни твоего танка. Я ее не знаю, но т.к. ты указывал ее я посчитал что dir это переменная угла наклона башни. А так тебе везде надо тогда dir заменить на переменную угла поворота башни танка. Если ее нет, например ты указывал image_angle для башни напрямую то используй вместо dir, имя_обьекта_башни.image_angle Можно записать это так, перед кодом как начнёшь использовать dir:
Код var dir=имя_обьекта_башни.image_angle; // создаем временную переменную dir которая = углу повората башни танка.
//потом
var x_offset = lengthdir_x(81, dir); var y_offset = lengthdir_y(81, dir);
//Тут пояснение, т.к. выше код необходимо делать именно в коде обьекта башни, т.е. я полагаю что все подготовки для выстрела происходят в коде обьекта башни. Если это не так то надо писать так, добавив текущие координаты башни танка:
var x_offset = имя_обьекта_башни.x+lengthdir_x(81, dir); var y_offset = имя_обьекта_башни.y+lengthdir_y(81, dir);
var temp=instance_create_depth(x_offset,y_offset,depth,obj_bullet); // делаем временный temp, которому присваеваем ID созданного обьекта чтобы можно было передать ему данные with (temp) { // with применяется чтобы код выполнялся непосредственно для прописанного в нем обьекта. speed=10; // скорость полета снаряда direction=имя_обьекта_в_котором_создаем_код.dir; // имя_обьекта_в_котором_создаем_код необходимо т.к. выше применяем with и все переменные указываются для обьекта пуля либо можно заменить на имя_обьекта_башни.image_angle image_angle=direction; // чтобы снаряд был повернут в сторону полета }
Сообщение отредактировал MagicHero - Пятница, 26 Июня 2020, 13:43 |
|
| |
MagicHero | Дата: Четверг, 25 Июня 2020, 19:03 | Сообщение # 207 | Тема: GMS 2 TDS Неправильный полет пули. |
участник
Сейчас нет на сайте
| var x_offset = lengthdir_x(81, dir); var y_offset = lengthdir_y(81, dir);
Я так понял что у тебя длина пушки 81 (либо ты брал чуть меньше чтобы снаряд вылетал из ствола), dir это угол поворота твоей пушки т.е. direction. Хотя я в своей игре точку на окружности находил так: x_temp=x+radius*dsin(direction); y_temp=y+radius*dcos(direction); Но сути этого не меняет. В общем при нажатие на мышку, создаешь снаряд по координатам
Код var x_offset = lengthdir_x(81, dir); var y_offset = lengthdir_y(81, dir);
где 81 это длина твоего дула а dir это direction (угол наклона) твоего дула.
Код var temp=instance_create_depth(x_offset,y_offset,depth,obj_bullet); // делаем временный temp, которому присваеваем ID созданного обьекта чтобы можно было передать ему данные with (temp) { // with применяется чтобы код выполнялся непосредственно для прописанного в нем обьекта. speed=10; // скорость полета снаряда direction=имя_обьекта_башни.dir; // угол наклона image_angle=direction; // чтобы снаряд был повернут в сторону полета }
И все снаряд сразу же полетит из ствола по направлению в котором был направлен ствол. Ничего лишнего чтобы нагружать систему писать не надо.
depth (глубина) нужно сделать больше чем у дула, чтобы снаряд появился под дулом. obj_bullet так назвал обьект пулю.
В самой пуле не забудь прописать instance_destroy(); в add_event --- Other --- Outside Room чтобы уничтожить пулю за пределами комнаты если она ни в кого не врежется.
Сообщение отредактировал MagicHero - Четверг, 25 Июня 2020, 19:05 |
|
| |
MagicHero | Дата: Среда, 24 Июня 2020, 20:14 | Сообщение # 208 | Тема: GMS 2 TDS Неправильный полет пули. |
участник
Сейчас нет на сайте
| У тебя пуля летит по координатам мыши что и приводит к всем проблемам ( полет назад, не из дула) нужно просто в момент нажатия на мышь производить появление объекта пули в конце ствола и движение по прямой с углом на который в момент нажатия было повернуто дуло танка. А если пуля ни во что не врежется то уничтожать ее, как только выйдет за пределы комнаты т.к. иначе она будет лететь бесконечно за пределами вида.
Сообщение отредактировал MagicHero - Среда, 24 Июня 2020, 20:17 |
|
| |
MagicHero | Дата: Среда, 24 Июня 2020, 20:06 | Сообщение # 209 | Тема: Android SDK является платным или нет? |
участник
Сейчас нет на сайте
| Сам gms2 имеет полностью бесплатную версию на которой ты можешь делать проект но с одним условием, ты его не сможешь скомпилировать. Но зато без проблем сможешь запускать и проверять как работает непосредственно в самой программе.
|
|
| |
MagicHero | Дата: Среда, 24 Июня 2020, 00:50 | Сообщение # 210 | Тема: GMS 2 TDS Противник и его основание |
участник
Сейчас нет на сайте
| По сути нужно проверять что если основание танка ещё не повернулось на угол движения к цели то скорость движения равна нулю.
|
|
| |
MagicHero | Дата: Суббота, 20 Июня 2020, 01:28 | Сообщение # 211 | Тема: помогите написать код |
участник
Сейчас нет на сайте
| Решается же проблема элементарно, с добавлением одной переменной. Когда персонаж попадает в яму прогоняется код чтобы отнять ключи, с этим как я понял проблем нет. И в этот же момент переменной даёшь значение true. При следующей проверке столкновения с ямой, перед тем как начинать отнимать ключи у тебя будет проверка той самой добавленной переменной и если она true то ничего не отнимает. Как только персонаж выходит из ямы, т.е. пропадает коллизия с ямой, этой переменной присваеваешь значение false. И теперь опять если персонаж попадет в яму у него один раз отнимут ключи а переменной опять присвоится значение true и так по кругу.
|
|
| |
MagicHero | Дата: Четверг, 11 Июня 2020, 11:48 | Сообщение # 212 | Тема: Помогите с ошибкой Game maker studio 2 |
участник
Сейчас нет на сайте
| Тогда значит реально русик что то поломал, либо попробуй удалить временные файлы проекта. Можно прямо из программы (иконка с кисточкой или что то вроде этого) или вручную в папке Кеша программы, лучше все же в ручную. По мимо этого на официальном сайте gms можешь поискать где ещё надо удалять временные файлы, правда там по понятным причинам все на инглише. А вообще сноси нафиг этот русификатор, какой вообще в нем смысл, там кнопок кот наплакал.
|
|
| |
MagicHero | Дата: Среда, 10 Июня 2020, 11:03 | Сообщение # 213 | Тема: Помогите с ошибкой Game maker studio 2 |
участник
Сейчас нет на сайте
| Даже не знал что gms 2 перевели на русский язык, хотя проще на английском работать чтобы не было сложностей с разбором статей которые на в основном на английском. Может но это так из разряда бреда что русификация что то поломала.
А так как вариант есть только один вариант что в игре ты просто объект не задействовал а используешь другой с таким же спрайтом. Проверь действительно в игре у тебя объект с названием обьект19 а то судя по тому что ты не изменил стандартное название это мог быть какой то тестовый объект.
|
|
| |
MagicHero | Дата: Вторник, 09 Июня 2020, 10:48 | Сообщение # 214 | Тема: Помогите с ошибкой Game maker studio 2 |
участник
Сейчас нет на сайте
| Смотри свой код, видимо где то просто зафиксированы координаты, т.к. отображение по x и y объектов у тебя по любому работает. У тебя же хотя бы один объект в игре есть? И он отображается там где тебе нужно? Значит проблем с координатами нет, да и быть не могло.
|
|
| |
MagicHero | Дата: Среда, 03 Июня 2020, 01:37 | Сообщение # 215 | Тема: Проверка инета при нажатии |
участник
Сейчас нет на сайте
| для проверки наличия интернета пиши os_is_network_connected() если вернет true то интернет есть.
|
|
| |
MagicHero | Дата: Воскресенье, 31 Мая 2020, 15:15 | Сообщение # 216 | Тема: Game Maker |
участник
Сейчас нет на сайте
| Цитата MagicHero ( ) У меня этот конструктор появился 3 года назад. За всё это время со своими перерывами я изучил всё, кроме работы скриптов и патчей и надеюсь, что я не забыл ничего после долгого перерыва. OMG это была не шутка? в чем сложность написания скриптов??? Это же обычный кусок кода с входными параметрами (хотя можно даже и без них) и выводом результата (хотя можно и без него). Это просто обычный код, что тут надо изучать?!?!? Скрипты по сути нужны чтобы повторяющийся кусок кода постоянно не писать каждый раз. А патчи это ты имеешь ввиду path? И в чем там проблема? открыл справку и за раз все разобрал.
Цитата MagicHero ( ) А вы что?? Предлагаете мне изучить англоязычный и платный Game Maker Studio 2?? Спасибо, но откажусь. Я лучше дождусь русского интерфейса - вот тогда я и начну изучать этот Game Maker Studio 2!
А зачем тебе там русский интерфейс??? Там кнопок то кот наплакал. Я лично английский практически не знаю, но проблемы мне это не доставляет. Статьи в основном на инглише идут и гугл переводчик без проблем все переводит. Да и GMS первый по сути тот же GMS 2 с некоторыми отличиями. Я начинал первую игру делать на GMS потом пересел на GMS 2 и проблем у меня это особых не составило.
|
|
| |
MagicHero | Дата: Четверг, 28 Мая 2020, 01:15 | Сообщение # 217 | Тема: Game Maker |
участник
Сейчас нет на сайте
| Тогда изучай gms 2, в последней версии сильно упростили процесс создания игр используя тайты, видео в инете можешь глянуть. Если думать лень то на плеймаркете в gms полно ассетов которые могут облегчить разработку игры, понятное дело не бесплатных. Я не знаю какую рпг ты хочешь сделать но сначала просто создай плавный скроллинг карты. Затем передвижение персонажа, выполнение им различных действий. Потом систему менюшек ( данные персонажа, инвентарь, окно с навыками, заклинаниями и т.д.). Далее уже противников и ИИ для них. Ну и окружение на создание которого может уйти уйма времени, хотя даже на создание обычного инвентаря можешь истратить месяц. В одиночку с нуля (без готового движка) игру будешь делать целую вечность и это с учетом что ты ещё и рисовать умеешь. Но если как хобби и чисто для себя то можешь потратить несколько лет на создание, только какой смысл? Игру ты будешь знать от и до и самому играть будет не интересно, да и другие вряд ли будут играть с учётом того что и так полно очень качественных рпг и во все не сыграть, т.е. нужно выбирать самые лучшие.
Сообщение отредактировал MagicHero - Четверг, 28 Мая 2020, 01:17 |
|
| |
MagicHero | Дата: Среда, 27 Мая 2020, 16:58 | Сообщение # 218 | Тема: Game Maker |
участник
Сейчас нет на сайте
| А в чем проблема то, если хочешь сделать рпг то есть для это специальный движок рпг маркер. В котором как я понял без каких либо знаний можно сделать рпг. Этими рпг на этом движке весь Стим завален, видимо не так и сложно его освоить.
|
|
| |
MagicHero | Дата: Вторник, 26 Мая 2020, 08:47 | Сообщение # 219 | Тема: Слежение этой штуковины за видом |
участник
Сейчас нет на сайте
| Цитата CUbeB ( ) Просто добавил префикс view_xview+ и view_yview+ к ячейкам массива хранящим координаты. Так у тебя оказывается старый GMS я написал для GMS 2 в нем уже нет view_xview, вместо этого camera_get_view_x(view_camera[0])
|
|
| |
MagicHero | Дата: Вторник, 26 Мая 2020, 01:28 | Сообщение # 220 | Тема: Слежение этой штуковины за видом |
участник
Сейчас нет на сайте
| Просто все координаты смещать на координаты смещения вида. Или как например я в своей игре сделал чтобы кнопки или некоторые менюшки оставались на месте когда смещается камера я их координаты прикрепил к координатам левого верхнего угла вида, camera_get_view_x(view_camera[0]) и тоже самое для y координаты. Либо если надо что то появить в центре экрана то прикрепляю объект к координатам обьекта-камеры который создал для движения вида, он всегда в центре экрана.
|
|
| |
|