Вторник, 11 Августа 2020, 21:44

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Форум игроделов » Записи участника » MagicHero [41]
Результаты поиска
MagicHeroДата: Суббота, 01 Августа 2020, 10:51 | Сообщение # 1 | Тема: помогите с кодом для инвентаря
частый гость
Сейчас нет на сайте
Тебе выше код показали, правда там ошибка и shot=true; надо вставить до break; либо сделать проще и вставить вместо этого код создания пули, чтобы не плодить лишние бессмысленные проверки условий. Проблемы как бы вообще не вижу и что тут не понятно я в упор не понимаю.
MagicHeroДата: Пятница, 31 Июля 2020, 09:46 | Сообщение # 2 | Тема: [Android] Bottle
частый гость
Сейчас нет на сайте
Задумка прикольная, хотя возможно таких игр полно в google play, т.к. я не играю на телефоне. Но могу сказать что с такой картинкой никто качать не будет. Надо все сделать в мультяшном стиле с множеством частиц, например когда бутылка падает на ребро то разлетается мультяшный дым а когда удачно встаёт то идёт всплеск воды от основания бутылки. С такой же депрессивной графикой из 90-х вряд ли кто то будет играть.
MagicHeroДата: Среда, 22 Июля 2020, 17:57 | Сообщение # 3 | Тема: Город отражений [RPG, PC, 2.5D]
частый гость
Сейчас нет на сайте
Делаешь на трупе GMS 1.4? серьезно? может стоит перейти на GMS 2?
MagicHeroДата: Среда, 22 Июля 2020, 16:22 | Сообщение # 4 | Тема: контроллер игрока Box2D
частый гость
Сейчас нет на сайте
Смотри на маркетплейсе GMS2. Там думаю продаются такие готовые ассеты.
MagicHeroДата: Вторник, 21 Июля 2020, 00:28 | Сообщение # 5 | Тема: Не отображается Health бар скелета
частый гость
Сейчас нет на сайте
Цитата AntonioRS ()
Да Draw_ext работает но, как поделить на 100? я не понимаю(( я пишу
round(100/hp) Но хп-шки на весь экран( Помогите пожалуйста

OMG ты бы сначала почитал что делает round, он округляет до ближайшего целого числа. hp тебе в картинку нужно засунуть в процентах поделенные на 100, т.е. если у тебя остается 45% от текучего значения то hp=0.45; round же нужно применять для округления а именно после того как вычислишь сколько у тебя осталось в % здоровья применяешь hp=round(hp)/100; и в итоге получаешь значение максимум с 2 знаками после запятой. А как найти в процентах сколько осталось здоровья то это простая школьная программа по математике, надеюсь ты учил математику? т.к. без нее в программировании делать нечего.
MagicHeroДата: Понедельник, 20 Июля 2020, 13:16 | Сообщение # 6 | Тема: Не отображается Health бар скелета
частый гость
Сейчас нет на сайте
Цитата AntonioRS ()
Хпшки на весь экран. А скелета всё равно не видно

Значит значение hp выходит за диапазон от 0 до 1, выведи отдельно на экран значение hp чтобы в этом убедится и понять что делать чтобы исправить.

draw_self(); нужно писать непосредстванно в draw и от порядока написания зависит глубина, так если сначала будет draw_self(); а затем draw_sprite_ext(s_enemy_hp,0,x,y+24,hp,1,0,-1,1); то если линия здоровья будет перекрывать картинку скелета (если по координатам будет попадать на его спрайт) а если наоборот сначала draw_sprite_ext(s_enemy_hp,0,x,y+24,hp,1,0,-1,1); а потом draw_self(); то линия здоровья будет за скелетом.


Сообщение отредактировал MagicHero - Понедельник, 20 Июля 2020, 13:21
MagicHeroДата: Понедельник, 20 Июля 2020, 10:03 | Сообщение # 7 | Тема: Не отображается Health бар скелета
частый гость
Сейчас нет на сайте
По поводу Healthbar то если в будущем начнешь оптимизировать игру то советую отказаться от этой функции т.к. эта отрисовка увеличивает свопы текстурных страниц. Лучше сразу рисуй хелбар через draw текстурой которая находится на той же текстурной странице что и текстуры скелета.
draw_sprite_ext(s_health_line,0,x,y,health,1,0,-1,1);
где s_health_line - текстура линии здоровья а health - количество здоровья но в отличие от фукции а Healthbar это значение не от 0 до 100 а от 0 до 1 т.е. нужно делить еще на 100 и лучше через round ограничить значение знаков после запятой на 2 т.е. чтобы значение было типа 0.15 а не 0.1534738475.

Для контроля количества отрисовок и вообще как игра использует железо нужно прописать show_debug_overlay(true); где вверху будут отображаться цифры текстуртных свопов и вершинных пакетов. Это значение должно быть как можно меньше. Например у меня в игре много текстур, их размер порядка 70мб (после ужимания непосредственно в самом кеше, размер становится около 40мб) а количество текстурных страниц 25 (размер 2048х2048) и забиты порой до предела чтобы минимизировать их количество. В игре же значение show_debug_overlay показывает в пределах 10/12 до 20/22 но обычно держится в районе 14/16. При этом стоит учесть что вызов таких функций как draw_set_font(); draw_set_colour(); также увеличивают значения и нужно стараться их выполнять за раз в одном месте.


Сообщение отредактировал MagicHero - Понедельник, 20 Июля 2020, 10:09
MagicHeroДата: Суббота, 18 Июля 2020, 00:34 | Сообщение # 8 | Тема: Скелет не смотрит в сторону игрока
частый гость
Сейчас нет на сайте
Direction используется для направления движения, для поворота спрайта нужно использовать image_angle.
MagicHeroДата: Пятница, 10 Июля 2020, 13:58 | Сообщение # 9 | Тема: Space Cobra RetPixMod
частый гость
Сейчас нет на сайте
Цитата TLT ()
Аналогия с Kage/Ninja Shadow под NES, уровень 1-3 на вращающихся колёсах. Там есть металлические противники, при попадании патронов в них происходит аналогичный отскок.

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

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


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


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

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


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


Сообщение отредактировал MagicHero - Вторник, 30 Июня 2020, 16:30
MagicHeroДата: Понедельник, 29 Июня 2020, 19:34 | Сообщение # 12 | Тема: помогите написать код
частый гость
Сейчас нет на сайте
Тебе же выше уже писали как сделать.
Напишу тогда код, но скажу сразу что изучай 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 | Сообщение # 13 | Тема: GMS 2 TDS Неправильный полет пули.
частый гость
Сейчас нет на сайте
Цитата trespass91 ()
У меня не отдельный спрайт гусениц.Я анимировал их на спрайте основания танка.

Это плохо в плане оптимизации т.к. идёт бессмысленный расход ресурсов, хотя если делаешь не для телефона или размер картинки маленький как и самих кадров анимации то можно и забить. Хотя все равно в будущем придется разбивать текстуры по текстурным атласам.
MagicHeroДата: Суббота, 27 Июня 2020, 16:46 | Сообщение # 14 | Тема: Помогите с ошибкой Game maker studio 2
частый гость
Сейчас нет на сайте
zero112, Мой первый ответ был верным так сказать :)
MagicHeroДата: Суббота, 27 Июня 2020, 16:42 | Сообщение # 15 | Тема: 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 | Сообщение # 16 | Тема: GMS 2 TDS Неправильный полет пули.
частый гость
Сейчас нет на сайте
Я там немного дополнил ответ выше.
MagicHeroДата: Пятница, 26 Июня 2020, 15:39 | Сообщение # 17 | Тема: 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 | Сообщение # 18 | Тема: 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 | Сообщение # 19 | Тема: 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 | Сообщение # 20 | Тема: GMS 2 TDS Неправильный полет пули.
частый гость
Сейчас нет на сайте
Цитата trespass91 ()
Вас понял.Вроде смотрел и переменная эта была.Буду дальше смотреть.

Я не успел дописать, сохранил т.к. неудобно было писать на планшете, чтобы закончить на компе. Выше посмотри там дописал текст )
Форум игроделов » Записи участника » MagicHero [41]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:

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