Пятница, 22 Ноября 2024, 21:49

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Некоторые проблемы в Game maker (стрельба, инвентарь)
poksДата: Четверг, 19 Июня 2014, 20:30 | Сообщение # 1
почетный гость
Сейчас нет на сайте
1. Недавно столкнулся с некоторой странностью при стрельбе персонажа. В Create у персонажа (o_hero)

Код
image_speed = 0;

//Технические переменные
hp = 100; //Здоровье
weapons = 'Пистолет'; //Оружие
weapons_curr = 2; //Смена оружия

//Патроны
bullet = 10000; //Пистолет
bullet_max = 100; //Максимальное кол-во

//Переменные, отвечающие за подбор оружия
pistolet = false;
auto = false;


При нажатии глобальной левой там же (o_hero)

Код
if(weapons == 'Пистолет'){
       if(bullet > 0){
          instance_create(x,y,o_bullet);
          view_angle = 0.5;
          image_index = choose(1,2)
          alarm[0] = 4;
          bullet -= 1;
       }
}


Но как только нажимаю на левую кнопку в игре выскакивает ошибка, мол, переменная weapons не обнаружено. И если напишу o_hero.weapons, то все работает нормально...


Добавлено (19.06.2014, 19:49)
---------------------------------------------
2. Проблема с инвентарем. В Create:

Код
w = 7;
slot_x = sprite_width;

for(i = 0; i < w; i++){
       sprite[i] = 0; //Спрайт предмета
       name[i] = ''; //Название предмета
       object[i] = 0; //Индекс объекта
       number[i] = 0; //Кол-во предмета
       max_number[i] = 0; //Максимальное кол-во
}


В Draw

Код
x=view_xview+64;
y=view_yview+415;

draw_set_font(c_white);
for(i = 0; i < w; i += 1){
       draw_sprite(sprite_index,image_index,x+i*slot_x,y); //Отрисовываем ячейки
       if(object[i] != 0){ //Если в инвентаре что-то есть
           draw_sprite(sprite[i],image_index,x+(i+0.3)*slot_x,y); //Отрисовываем предмет
           draw_text(x+i*slot_x,y,number[i]); //Отрисовываем количество
       }
}  


В объекте родители в столкновении с игроком (назначаю предметам для подбора)
Код
for(i = 0; i < o_inv.w; i++){
       if(o_inv.number[i] == 0){ //Если предмета нет
           o_inv.sprite[i] = sprite_index; //Присваиваем спрайт
           o_inv.object[i] = object_index; //Присваиваем индекс объекта
           o_inv.name[i] = name; //Присваиваем имя
           o_inv.max_number[i] = maxnumber; //Присваиваем макс. кол-во
           o_inv.number[i]++; //Прибавляем предмет на единицу
           instance_destroy(); //Удаляем предмет
           exit;
       }
          
       if(o_inv.object[i] == object_index){ //Если предмет есть
           if(o_inv.number[i] < maxnumber){ //Если стак не полный
               o_inv.sprite[i] = sprite_index; //Присваиваем спрайт
               o_inv.object[i] = object_index; //Присваиваем индекс объекта
               o_inv.name[i] = name; //Присваиваем имя
               o_inv.max_number[i] = maxnumber; //Присваиваем макс. кол-во
               o_inv.number[i]++; //Прибавляем предмет на единицу
               instance_destroy(); //Удаляем предмет
               exit;
           }
       }
}


При подборе предмета пишет, что неизвестна переменная name, хотя в дочернем объекте она объявлена. Как исправить?

Добавлено (19.06.2014, 20:30)
---------------------------------------------
ап




Сообщение отредактировал poks - Четверг, 19 Июня 2014, 19:50
OverdraveДата: Пятница, 20 Июня 2014, 09:49 | Сообщение # 2
частый гость
Сейчас нет на сайте
С оружием лишь одна версия - русские буквы не принимает. Я когда диалоги НПСам прописывал русскими буквами в переменную, у меня выводило только знаки препинания. Попробуй заменить "Пистолет" на "Pistol".

С инвентарем, похоже, тоже самое.

Задам знающим людям вопрос: как и вообще возможно ли вбивать русские буквы в переменные?
XDominatorДата: Пятница, 20 Июня 2014, 10:45 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
русские буквы в коде допустимы только в комментариях smile так что не вникая глубоко, как минимум их из кода нужно убрать полностью. Касательно вывода строк на русском - это возможно. нужно просто делать более глубокую настройку шрифтов. Если открыть любом созданный в 2 клика шрифт, можно увидеть, что там в списке символов только латиница и знаки препинания. Соответственно отображаются в тексте только те символы, которые учтены в выбранном шрифте.

Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
  • Страница 1 из 1
  • 1
Поиск:

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