Пятница, 29 Марта 2024, 15:42

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 5
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Форум игроделов » Записи участника » MrSlap [81]
Результаты поиска
MrSlapДата: Вторник, 18 Июня 2019, 14:50 | Сообщение # 1 | Тема: Вопрос - Ответ (Game Maker)
почетный гость
Сейчас нет на сайте
martuk, спасибо, чистка Кэша помогла.

Создаю интерактивную повесть.
MrSlapДата: Вторник, 18 Июня 2019, 14:05 | Сообщение # 2 | Тема: Вопрос - Ответ (Game Maker)
почетный гость
Сейчас нет на сайте
Привет. У меня какая-то лютая дичь творится. Переустановил гамак, перестали работать сохранённые проекты (версия Студио 1.4 проф, с официального сайта). Но это полбеды. Я начал новый проект. Делал какое-то время. И случилась такая же хрень. Проект не запускается, выдаёт ошибку компиляции, определяет некоторые строки как ошибочные, хотя там всё чисто. Ведь вчера можно было запустить игру. А сегодня она уже не компилируется.
Выдаёт вот такую вот дичь. В чём дело? Кто знает?
http://s1.uploadpics.ru/images/WyNIgE6a2N.png


Создаю интерактивную повесть.
MrSlapДата: Вторник, 17 Июля 2018, 22:11 | Сообщение # 3 | Тема: Камера для двоих
почетный гость
Сейчас нет на сайте
Syank, да, это было просто. Затупил.
Тему можно закрывать.

Код
view_xview = - (view_wview/2)+(obj_player_0.x+obj_player_1.x)/2


Создаю интерактивную повесть.

Сообщение отредактировал MrSlap - Вторник, 17 Июля 2018, 22:13
MrSlapДата: Вторник, 17 Июля 2018, 21:56 | Сообщение # 4 | Тема: Камера для двоих
почетный гость
Сейчас нет на сайте
Не могу придумать, как заставить камеру, находиться посередине, между двумя объектами, которые могут двигаться в любых направлениях.
По сути, нужно найти точку, равноудалённую между ними, и привинтить к view. Кто может предложить формулу?


Создаю интерактивную повесть.
MrSlapДата: Вторник, 14 Ноября 2017, 19:19 | Сообщение # 5 | Тема: instance_nearest
почетный гость
Сейчас нет на сайте
ASH2, значит я был прав, насчёт очистки и удаления списка. А точно никак не применить это правило к nearest? типа искать ближайшего к номеру в списке, кроме самого себя? Это вроде звучит логично. Просто непонятно, как исключить самого себя. Даже офф. справка GMS говорит, что надо перед выбором instance_nearest убрать сам экземпляр объекта кординатно на -10000, чтобы функция его не обнаружила. Кривулина какая-то. Потому что по instance find он же ищет по порядку добавления в комнату. то есть полёт снаряда в принципе не предсказуем.

Создаю интерактивную повесть.
MrSlapДата: Вторник, 31 Октября 2017, 15:04 | Сообщение # 6 | Тема: instance_nearest
почетный гость
Сейчас нет на сайте
ASH2, всё! Я понял. Вроде очевидно, но не мог взять в толк! Ща замутим! Спасибо!
Кстати, а очищать ds_list не надо по завершению программы? Типа как с партиклами и эмиттерами?


Создаю интерактивную повесть.
MrSlapДата: Суббота, 28 Октября 2017, 14:53 | Сообщение # 7 | Тема: instance_nearest
почетный гость
Сейчас нет на сайте
ASH2, так. Спасибо. Если список просчитывается на репите в момент создания, значит, что закл полетит только в точку последнего значения, высчетанного репитом. А если поместить в столкновение с объектом, тогда, в случае, если ближайший нужный объект будет находиться по направлению ЗА текущим, то он просто не пролетит насквозь, так как события столкновения останавливают движение объекта.
Ну, и кстати, летит он далеко не в ближний объект, наверняка как раз после всех рассчётов.
Чего-то я не до конца понимаю как дата списки работают.

Или я просто тупее, чем думал )))


Создаю интерактивную повесть.
MrSlapДата: Вторник, 24 Октября 2017, 21:31 | Сообщение # 8 | Тема: instance_nearest
почетный гость
Сейчас нет на сайте
ASH2, я уже пробовал шестью разными способами. Но где-то я что-то упускаю... Может реально при запуске заклинания создавать список объектов в радиусе поражения, и в порядке этого списка направлять в нужную сторону спецэффект, и при пересечении его с координатами объекта из списка, удалять его оттуда, и менять кординаты дирекшна на следующий объект в списке?...
Значит нужны instance_number и ds_list. Будем думать.


Создаю интерактивную повесть.
MrSlapДата: Понедельник, 23 Октября 2017, 05:05 | Сообщение # 9 | Тема: Движение экземпляров обекта
почетный гость
Сейчас нет на сайте
Sdydent, так это просто. Ты можешь попробовать запихать этот цикл в алярм, и обновлять его по истечению времени. Это самый простой вариант.
Интереснее, сделать с помощью переменной, которая в step будет считать нужное количество шагов, потом - если прошло столько-то шагов, запускается цикл, а степ обнуляется. Принцип тот же, но больше гибкости.
Код
create //писать в create объекта
(num=0
maxnum=100
)
step //писать в шаге
if (num<maxnum) { //задаём интервал
   num+=1
   }else{
   num=0
   for (i = 0; i<10; i+=1)
   {...}//твой массив
   }

например, при определённых обстоятельствах можно изменить maxnum и соответственно - время спавна.


Создаю интерактивную повесть.

Сообщение отредактировал MrSlap - Понедельник, 23 Октября 2017, 05:06
MrSlapДата: Понедельник, 23 Октября 2017, 00:35 | Сообщение # 10 | Тема: instance_nearest
почетный гость
Сейчас нет на сайте
Ребята. помогите сделать что-то а-ля цепная молния. Соль в том, чтобы она цепляла каждого следующего ближайшего и не могла вернуться ни к одному из уже задетых.
Код

var inst, xx;
xx = x;
x -= 10000;
inst = instance_nearest(xx, y, object_index);
if inst != id
    {
    draw_line(x, y, inst.x, inst.y);
    }
x += 10000;


Как раскрутить этот код, чтобы он выполнял цепь событий, а не скакал между двумя объектами. Вроде понятно, надо список делать. Но что-то у меня не выходит.
Находил на форуме подобную тему, но там прикреплённый пример уже удалён. Если у кого сохранился, скиньте, плз =)


Создаю интерактивную повесть.

Сообщение отредактировал MrSlap - Понедельник, 23 Октября 2017, 00:35
MrSlapДата: Среда, 18 Октября 2017, 05:02 | Сообщение # 11 | Тема: Продвинутый интеллект
почетный гость
Сейчас нет на сайте
Есть лучник, который, при виде героя начинает стрелять. Нужно сделать так, чтобы, если на траектории стрелы появляется его союзник, он не просто переставал стрелять, а пытался отойти так, чтобы освободить себе обзор.
Первую часть я легко сделал с помощью
Код
!collision_line(x,y,obj,false,true) {attack = true} else {attack = false}

Однако. Как сделать обход? Пытался использовать action_potential_step, но, не могу заставить его рассчитать угол обхода, чтобы он не бежал вперёд и не скользил вдоль своих же.
Больше нет идей.

Второй вопрос. Есть код обнаружения героя. Стандартный, достаточно.
Код

if (instance_exists(o_player)) {
   if (attack==0
   and distance_to_point(o_player.x,o_player.y) < max_dist
   and distance_to_point(o_player.x,o_player.y) >= dist
   and !collision_line(x,y,o_player.x,o_player.y,obj_solid, false, true) and !collision_line(x,y,o_player.x,o_player.y,obj_wall, false, true))
      {
      friction =0
      action_potential_step(o_player.x,o_player.y,2,0)
      en_animation(); //Передвижение с учётом анимации
      if (speed>=4) {speed=4}
      }

Однако, когда враги подходят толпой в ближний бой, они не останавливаются, а начинают вибрировать друг об друга.
вроде и
Код

{
   move_bounce_all(true);
   if speed >2 speed = speed/2;
}

в столкновениях присутствует... Как это реализовать и исправить?..


Создаю интерактивную повесть.
MrSlapДата: Понедельник, 16 Октября 2017, 04:40 | Сообщение # 12 | Тема: Сумма переменных массива
почетный гость
Сейчас нет на сайте
AlexanderBekker, спасибо! Я нашёл свою ошибку. У меня этот код был не на массив инвентаря, а на позицию мыши, поэтому он не высчитывал все объекты, а только стак, на который указывал курсор. Пришлось открывать дополнительный пересчёт, который легко сделал всё, что нужно!

Создаю интерактивную повесть.
MrSlapДата: Понедельник, 16 Октября 2017, 01:57 | Сообщение # 13 | Тема: Сумма переменных массива
почетный гость
Сейчас нет на сайте
Задача вроде простая. Но мозг отказывается находить решение.
Смысл в том, что есть массив значений. Скажем, инвентарь. И стаки предметов, по 5 штук. И у всех этих предметов есть параметр, который нужно суммировать и вывести.
Например - подобрал я 13 одинаковых предметов. В инвентарь они записались в три ячейки - две по пять и одна по три. Мне нужно вывести в описании общее количество этих предметов.

Памагити...


Создаю интерактивную повесть.
MrSlapДата: Пятница, 12 Августа 2016, 13:14 | Сообщение # 14 | Тема: Нужна помощь 8 стороним движением
почетный гость
Сейчас нет на сайте
Dragon1234, сделай проверочки. Во первых, рисуя спрайт в степе, проверь, чтобы после спайта стоял image_index вместо какой-либо цифры (она обозначает отрисовывающийся кадр)
Can_fire попробуй добавить в if
Мол if can_fire=1 {код анимации атаки, например, отрисовка спрайта атакаи} else {коды других анимаций со своими условиями, например отрисовка спрайта ходьбы}
Надеюсь достаточно просто. Багов быть не должно. Я бы весь код, относящийся к анимации засунул в Draw, хотя многие говорят, что это не оптимально.


Создаю интерактивную повесть.
MrSlapДата: Четверг, 11 Августа 2016, 11:25 | Сообщение # 15 | Тема: Бит-е-мап
почетный гость
Сейчас нет на сайте
В целях изучения GMS, хотелось бы узнать, как можно реализовать управление, сродни играм вроде battle toads или TNMT 3 на NES
Когда помимо движения в четырёх направлениях можно ещё и прыгать.
Собственно, самый главный вопрос отходит к методам реализации прыжков в данном жанре игры.
Мне бы хоть пример годный, с кодом управления персонажем. Или подсказку, где найти инфу =)
Благодарю.


Создаю интерактивную повесть.
MrSlapДата: Пятница, 05 Августа 2016, 03:38 | Сообщение # 16 | Тема: О боли и image_speed
почетный гость
Сейчас нет на сайте
maksim1221232, в спрайте два кадра. как бы предмет в комнате, и его изображение в инвентаре. Ряд значений, которые могут изменяться (количество предметов, качество, вес и т.д.)
Ну, в комнате предмет сделан объектом, а в инвентарь переходит уже в виде спрайта, отрисованного поверх ячейки. Ну в Create объекта, естественно image_speed=0 - работает на ура.
В принципе, я, как написал выше, закостылил, что спрайт, занимающий ячейку, тоже обретает свойство image_speed=0.
Код
Spr[i]==sprite_index //вызывается из подбираемой вещи
Spr[i].image_index=1 //нулевой индекс - спрайт предмета снаружи, первый - в инвентаре
Spr[i].image_speed=0

Ну и всё работало. Сохранил, закрыл, ушёл спать. Утром открываю, f5 - а они мелькают в инвентаре, вместо того, чтобы остановиться на втором кадре спрайта. Код не менялся. но не прекращает смену кадров. Но до этого же нормально всё было - меня вот это расстроило, шо решил написать ))

Добавлено (05 августа 2016, 03:38)
---------------------------------------------
Сам себе придумал боль. Просто забыл сменить при отрисовке спрайта индекс на переменную. Поэтому все костыли работали через не то место.
Если можно - удалите тему. А то она мусор.


Создаю интерактивную повесть.
MrSlapДата: Среда, 03 Августа 2016, 20:40 | Сообщение # 17 | Тема: О боли и image_speed
почетный гость
Сейчас нет на сайте
Умный народ, не прошу никаких решений. Кто-нибудь, объясните, почему вчера я сделал смену кадра с нулевого на первый (image_index=1) при определенных условиях и всё работало. Запустил сегодня - и программа как будто забыла о том, что там есть строчка image_speed=0? :o
Ничего не добавлял, не удалял из кода. сохранил и закрыл. Открываю сейчас - Бам! А не, чувак, это так работать не будет, говорит мне GMS 1.4


Создаю интерактивную повесть.
MrSlapДата: Среда, 10 Июня 2015, 19:05 | Сообщение # 18 | Тема: Ограничение CPU для GMS
почетный гость
Сейчас нет на сайте
minepecraft, или можно запустить рендер в 3D max в fHD, одновременно в Premiere так же, и 40 минутный микс симфонического оркестра в Cubase. А на фоне последнего Ведьмака запустить. И вот под шумок лепить лёгонькую игрулю =D

Но это уже флуд...


Создаю интерактивную повесть.
MrSlapДата: Вторник, 09 Июня 2015, 03:36 | Сообщение # 19 | Тема: Ввод текста
почетный гость
Сейчас нет на сайте
Доброй ночи, други.
Была такая проблема: искал по примерам, как реализовать ввод строки - имени, или ещё чего-нибудь. И примеры сводились к одному и тому же варианту. Может плохо искал?
Там была проблема, которую завсегдатаи форума ввиняли создателям гамака - отсутствие прописных кириллических букв от А до П. Не мудрствуя лукаво, написал вот такой простой код:
Create:
Код
key='';
str='';

Draw:
Код
draw_set_font(font0) //заранее выбрать шрифт и вбить в него русский алфавит
draw_text(10,10,string(str)) //рисуем строку

if keyboard_check_pressed(vk_anykey) //нажатие клавиши
{
    if !keyboard_check_pressed(vk_shift)  
    and !keyboard_check_pressed(vk_backspace)  
    and !keyboard_check_pressed(vk_delete)
    {
      if (string_length(str) < 30) // максимум символов в строке
      {  
      key=keyboard_lastchar //нажатая клавиша
      str += key //добавление буквы в строку
      }  
    }
    if keyboard_check_pressed(vk_backspace) //бэкспейс
    {
    if (string_length(str) > 0) //в строке есть символы
       {
       str=string_delete(str,string_length(str),1) //удаляем последний символ
       }
    }
    if keyboard_check_pressed(vk_delete)
    {
       str=string_delete(str,1,1) //удаляем первую букву
    }
}


И теперь у меня всё работает. Конечно, можно накинуть проверок, для запрета отрисовки различных символов. Интегрировать этот код в какое-нибудь поле для набора не составит большого труда.

P.S. Не знал, куда закинуть эту заметку. Кстати, куда лучше выкладывать подобные примеры кода? Или лучше никуда? Но, судя по всему, не мало начинающих ребят ищут решение такой же проблемы. Может, кому-то поможет мой костыль?
P.P.S. Еще нарисовал себе решение с приятной глазу прокруткой (скроллингом) текста в surface, тоже могу выложить.
MrSlapДата: Суббота, 06 Июня 2015, 01:09 | Сообщение # 20 | Тема: Ограничение CPU для GMS
почетный гость
Сейчас нет на сайте
EfimovMax, нет. Он ещё долго будет сохранять сырость =)

Создаю интерактивную повесть.
Форум игроделов » Записи участника » MrSlap [81]
  • Страница 1 из 5
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:

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