Суббота, 27 Апреля 2024, 11:20

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Записи участника » MagicHero [225]
Результаты поиска
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 координаты. Либо если надо что то появить в центре экрана то прикрепляю объект к координатам обьекта-камеры который создал для движения вида, он всегда в центре экрана.
Форум игроделов » Записи участника » MagicHero [225]
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг