Среда, 03 Сентября 2025, 10:03

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
MagicHeroДата: Пятница, 10 Июля 2020, 13:58 | Сообщение # 321 | Тема: Space Cobra RetPixMod
постоянный участник
Сейчас нет на сайте
Цитата TLT ()
Аналогия с Kage/Ninja Shadow под NES, уровень 1-3 на вращающихся колёсах. Там есть металлические противники, при попадании патронов в них происходит аналогичный отскок.

Я имел ввиду что игрок постоянно отпрыгивает от снарядов противника в сторону и при этом камера моментально меняет ракурс что дико напрягает глаза, так ещё и противника теряешь из виду. Бой с боссом на 2м уровне мне было невозможно смотреть из за постоянной смены камеры и дергающегося туда сюда игрока. Нужно как минимум сделать плавную смену камеры и убрать эти конвульсии игрока, когда он уворачивается от снарядов.

Насчёт прыжка девушки то прыжок на месте выглядит ужасно, как будто доской играешь. Прыжок с подогнутыми ногами выглядел бы куда лучше. Как и прыжок в длину с расставленными на пол экрана ногами, тут опять же нужна какая то группировка или кувырок. Возьми за основу движения в том же мортал комбате или стрит файтере, ничего придумывать и не надо.


Сообщение отредактировал MagicHero - Пятница, 10 Июля 2020, 13:59
MagicHeroДата: Четверг, 09 Июля 2020, 18:16 | Сообщение # 322 | Тема: Space Cobra RetPixMod
постоянный участник
Сейчас нет на сайте
Рисовка, особенно картинки в катсценах отличные но боевка ужасная, особенно битва с боссом на 2 уровне. Эти постоянные отскоки в сторону от снарядов смотрятся просто ужасно,. Тут надо сделать какой то специальный отскок без СМЕНЫ камеры в обратном направлении (эта смена камеры просто дико перегружает глаза) или блок для отражения снарядов. Прыжки девушки, особенно на месте, тоже выглядят топорно. Сделай что-ли чтобы ноги в прыжке хотя бы подгибала.
MagicHeroДата: Вторник, 30 Июня 2020, 16:21 | Сообщение # 323 | Тема: помогите написать код
постоянный участник
Сейчас нет на сайте
Цитата DivES ()
Описывать каждую яму по отдельности — утомительно.


Каждую яму описывать не надо, я же написал что в функции пишешь имя_обьекта_ямы. Я надеюсь автор вопроса для всех ям использует один объект а не разные. Если по мимо ям есть ещё объекты которые отнимают ключи когда попадаешь в них то надо создать родительский объект (можно полностью пустой) и прикрепить к нему всё что отнимает ключи а его название указать в функции place_meeting.

Цитата DivES ()
К тому же place_meeting(...) звучит как функция проверки столкновения с местом, а не с объектом. Поищи в сторону функции столкновения с объектом, тогда обойдёшься строчкой кода.


place_meeting как раз и проверяет маски коллизии игрока и обьекта яма по текущим координатам игрока, там же написаны x и y координаты игрока. Можно наоборот добавлять к координатам значения чтобы проверять перед игроком или как душе захочется.


Сообщение отредактировал MagicHero - Вторник, 30 Июня 2020, 16:30
MagicHeroДата: Понедельник, 29 Июня 2020, 19:34 | Сообщение # 324 | Тема: помогите написать код
постоянный участник
Сейчас нет на сайте
Тебе же выше уже писали как сделать.
Напишу тогда код, но скажу сразу что изучай gms2 а то так ты ничего сделать не сможешь.
в create игрока напиши

Код
check_grid=true;


В step твоего игрока напиши
Код
if place_meeting(x,y,имя_обьекта_ямы) // если обьект ямы имеет не один вид то пиши имя родительского объекта к которому прикрепи все типы ям, ловушек и т.д. все что отнимает ключи.
{
   if check_grid=true // если игрок попал в яму и до этого не находился в яме
   {
      // код для отнимания ключей
   }
   check_grid=false; // меняем переменную чтобы больше не прогонять код отнимания ключей т.к. игрок уже в яме
}
else
{
   check_grid=true; // как только игрок выйдет из ямы, меняем переменную чтобы при следующем попадании в яму опять один раз сработал код для отнимания ключей. Кстати тут же можно без проблем реализовать бессмертие если check_grid всегда будет false.
}


Сообщение отредактировал MagicHero - Понедельник, 29 Июня 2020, 22:53
MagicHeroДата: Воскресенье, 28 Июня 2020, 09:18 | Сообщение # 325 | Тема: GMS 2 TDS Неправильный полет пули.
постоянный участник
Сейчас нет на сайте
Цитата trespass91 ()
У меня не отдельный спрайт гусениц.Я анимировал их на спрайте основания танка.

Это плохо в плане оптимизации т.к. идёт бессмысленный расход ресурсов, хотя если делаешь не для телефона или размер картинки маленький как и самих кадров анимации то можно и забить. Хотя все равно в будущем придется разбивать текстуры по текстурным атласам.
MagicHeroДата: Суббота, 27 Июня 2020, 16:46 | Сообщение # 326 | Тема: Помогите с ошибкой Game maker studio 2
постоянный участник
Сейчас нет на сайте
zero112, Мой первый ответ был верным так сказать :)
MagicHeroДата: Суббота, 27 Июня 2020, 16:42 | Сообщение # 327 | Тема: GMS 2 TDS Неправильный полет пули.
постоянный участник
Сейчас нет на сайте
Цитата trespass91 ()
Сюда ведь еще можно старт и стоп анимации сделать у противника.Гусеницы анимированы.
Ну то есть не сюда,а в объект основание танка противника.


Анимация делается просто, если есть движение (move=true;) то прибавляешь к кадру спрайта какое то число, например так:

Код
// в step пишешь

if move = true {    // можно просто писать if move {
   pic_move += 0.5 * speed;  // 0.5 взято от болды, тебе нужно самому проверить сколько кадров анимации нужно показывать при скорости 1 чтобы не было так что танк летит а гусеницы еле крутятся или наоборот. speed - скорость танка, чтобы подстроить скорость анимации под его скорость движения.
  if pic_move >= 10 { pic_move = 0; }  // 10 это я от болды взял количество кадров анимации и суть если значение будет выше то надо начинать опять с первого кадра. В GMS2 нумерация кадров идет с 0 т.е. если 9 кадров то от 0 до 8.
}

// в draw пишешь

draw_self();   // иначе не будет отображаться основание танка
draw_sprite( имя_спрайта_гусениц, pic_move, x, y );


Цитата trespass91 ()
После этого кода противник в волчок превращается и ступорится на месте у стены.Наверное цепляется маской коллизии.

Если используешь физику то по правде сказать я с ней ни разу еще не работал и не знаю что да как там. Я привел пример для обычного движения обьекта по пути, как делал в своей игре.


Сообщение отредактировал MagicHero - Суббота, 27 Июня 2020, 16:44
MagicHeroДата: Пятница, 26 Июня 2020, 15:58 | Сообщение # 328 | Тема: GMS 2 TDS Неправильный полет пули.
постоянный участник
Сейчас нет на сайте
Я там немного дополнил ответ выше.
MagicHeroДата: Пятница, 26 Июня 2020, 15:39 | Сообщение # 329 | Тема: 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 | Сообщение # 330 | Тема: 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 | Сообщение # 331 | Тема: 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 | Сообщение # 332 | Тема: GMS 2 TDS Неправильный полет пули.
постоянный участник
Сейчас нет на сайте
Цитата trespass91 ()
Вас понял.Вроде смотрел и переменная эта была.Буду дальше смотреть.

Я не успел дописать, сохранил т.к. неудобно было писать на планшете, чтобы закончить на компе. Выше посмотри там дописал текст )
MagicHeroДата: Пятница, 26 Июня 2020, 13:31 | Сообщение # 333 | Тема: 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 | Сообщение # 334 | Тема: 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 | Сообщение # 335 | Тема: GMS 2 TDS Неправильный полет пули.
постоянный участник
Сейчас нет на сайте
У тебя пуля летит по координатам мыши что и приводит к всем проблемам ( полет назад, не из дула) нужно просто в момент нажатия на мышь производить появление объекта пули в конце ствола и движение по прямой с углом на который в момент нажатия было повернуто дуло танка. А если пуля ни во что не врежется то уничтожать ее, как только выйдет за пределы комнаты т.к. иначе она будет лететь бесконечно за пределами вида.

Сообщение отредактировал MagicHero - Среда, 24 Июня 2020, 20:17
MagicHeroДата: Среда, 24 Июня 2020, 20:06 | Сообщение # 336 | Тема: Android SDK является платным или нет?
постоянный участник
Сейчас нет на сайте
Сам gms2 имеет полностью бесплатную версию на которой ты можешь делать проект но с одним условием, ты его не сможешь скомпилировать. Но зато без проблем сможешь запускать и проверять как работает непосредственно в самой программе.
MagicHeroДата: Среда, 24 Июня 2020, 00:50 | Сообщение # 337 | Тема: GMS 2 TDS Противник и его основание
постоянный участник
Сейчас нет на сайте
По сути нужно проверять что если основание танка ещё не повернулось на угол движения к цели то скорость движения равна нулю.
MagicHeroДата: Суббота, 20 Июня 2020, 01:28 | Сообщение # 338 | Тема: помогите написать код
постоянный участник
Сейчас нет на сайте
Решается же проблема элементарно, с добавлением одной переменной. Когда персонаж попадает в яму прогоняется код чтобы отнять ключи, с этим как я понял проблем нет. И в этот же момент переменной даёшь значение true. При следующей проверке столкновения с ямой, перед тем как начинать отнимать ключи у тебя будет проверка той самой добавленной переменной и если она true то ничего не отнимает. Как только персонаж выходит из ямы, т.е. пропадает коллизия с ямой, этой переменной присваеваешь значение false. И теперь опять если персонаж попадет в яму у него один раз отнимут ключи а переменной опять присвоится значение true и так по кругу.
MagicHeroДата: Четверг, 11 Июня 2020, 11:48 | Сообщение # 339 | Тема: Помогите с ошибкой Game maker studio 2
постоянный участник
Сейчас нет на сайте
Тогда значит реально русик что то поломал, либо попробуй удалить временные файлы проекта. Можно прямо из программы (иконка с кисточкой или что то вроде этого) или вручную в папке Кеша программы, лучше все же в ручную. По мимо этого на официальном сайте gms можешь поискать где ещё надо удалять временные файлы, правда там по понятным причинам все на инглише. А вообще сноси нафиг этот русификатор, какой вообще в нем смысл, там кнопок кот наплакал.
MagicHeroДата: Среда, 10 Июня 2020, 11:03 | Сообщение # 340 | Тема: Помогите с ошибкой Game maker studio 2
постоянный участник
Сейчас нет на сайте
Даже не знал что gms 2 перевели на русский язык, хотя проще на английском работать чтобы не было сложностей с разбором статей которые на в основном на английском. Может но это так из разряда бреда что русификация что то поломала.

А так как вариант есть только один вариант что в игре ты просто объект не задействовал а используешь другой с таким же спрайтом. Проверь действительно в игре у тебя объект с названием обьект19 а то судя по тому что ты не изменил стандартное название это мог быть какой то тестовый объект.
Поиск:

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