Вторник, 05 Ноября 2024, 17:55

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Проблема с Ini Файлами и улучшением обьекта
overboltДата: Воскресенье, 11 Января 2015, 21:59 | Сообщение # 1
Overbolt's Project
Сейчас нет на сайте
Всем привет.Делаю для игры выбор языка.С Ini работаю впервые,вроде все сделал как в туториале,но не работает.В чем проблема?Сначала я задаю переменные в создании
Код
global.Health=""
global.XP=""
global.Hunger=""
global.Thrust=""

В Step открываю Ini файл
Код
if global.english=1
{
ini_open("english.ini")

global.Health=ini_read_string("Interface","Health","None")
global.XP=ini_read_string("Interface","XP","None")
global.Hunger=ini_read_string("Interface","Hunger","None")
global.Thrust=ini_read_string("Interface","Thrust","None")
ini_close()

И в рисовании уже записываю
Код
draw_text(view_xview + 34,view_yview + 5,""+string(global.Health) +string(global.hp)+"/"+string(global.maxhp))
draw_text(view_xview + 34,view_yview + 25,""+string(global.XP) +string(global.xp) + "/" + string(global.maxxp))    
draw_text(view_xview + 34,view_yview + 45,""+string(global.Hunger) +string(global.hunger)+ "/" + string(global.maxhunger))
draw_text(view_xview + 34,view_yview + 65,""+string(global.Thrust) +string(global.thrust)+ "/" + string(global.maxthrust))

Но то,что я читаю с Ini всеравно не отображается в игре.

И еще нашел в игре такой казус,когда сделал апгрейд зданий:
Допустим по нажатию кнопки E происходит событие:
если герой находится рядом с зданием и есть определенное количество ресурсов для улучшения,то я удаляю обьект и на этом-же месте создаю обьект этого же здания,только 2 уровня,и чтобы улучшить со 2 до третьего тоже используется тот-же код,только ресурсов нужно больше.Но не об этом.Чтобы улучшить от 1 до 2 уровня нужно допустим 20 ресурсов,а от 2 до 3 еще 40 ресурсов,от 3 до 4 еще 60 и тд.И вообщем если у героя есть 20+40+60 ресурсов и около здания первого уровня он нажимает E,то улучшается сразу до того уровня до которого максимум хватает ресурсов,а нужно чтобы улучшалось только до следующего уровня.Что делать?


Сообщение отредактировал overbolt - Воскресенье, 11 Января 2015, 22:06
LunarPixelДата: Воскресенье, 11 Января 2015, 22:28 | Сообщение # 2
старожил
Сейчас нет на сайте
Цитата overbolt ()
Что делать?

Много вариантов можно придумать, как, пожалуй, самый простой, попробуй использовать keyboard_clear(ord('E')). Поставь его в событие создания здания, или даже лучше в событие удаления.

В ini у тебя предварительно что-нибудь записано заранее, вручную? ini лежит в папке с игрой?
Если GMS, то ini, по умолчанию, создается в рабочей директории. Попробуй для теста в Create прописать:

Код
ini_open("english.ini")
ini_write_string("Interface","Health","100");
ini_close()

ini_open("english.ini")
global.XP=ini_read_string("Interface","XP","None");
ini_close()

show_message(global.XP);

И посмотри, выдаст тебе 100 в сообщении или нет.

Так же, если у тебя после считывания global.english не изменяется, то нужно вытащить считывания из Step, а то получится, что он у тебя постоянно будет этот ini файл открывать/читать/закрывать.
И если переменные у тебя числовые, то используй не ini_read_string/ini_write_string, а ini_read_real/ini_write_real.


overboltДата: Воскресенье, 11 Января 2015, 22:37 | Сообщение # 3
Overbolt's Project
Сейчас нет на сайте
LunarPixel, Как раз таки в ini вручную добавил еще одну переменную,тоисть записывать нужно только через game maker?
LunarPixelДата: Воскресенье, 11 Января 2015, 22:44 | Сообщение # 4
старожил
Сейчас нет на сайте
overbolt, можно перейти в рабочую директорию и там изменять ini файл, но точно не помню, какой путь по умолчанию.
Кажется: C:\Users\Пользователь\AppData\Local\Название проекта
Но лучше всего задавать все через Game Maker, меньше хлопот, да и, как по мне, проще в управлении.


overboltДата: Вторник, 13 Января 2015, 14:32 | Сообщение # 5
Overbolt's Project
Сейчас нет на сайте
LunarPixel, спасибо

Добавлено (13 января 2015, 14:32)
---------------------------------------------
Еще появился вопрос,можно ли записать текст в ini в одну переменную,но чтобы отображалось как то так

Код
global.text=строчка1
строчка2
строчка3

И если в draw_text введешь global.text в игре писалось в 3 строки.
LunarPixelДата: Вторник, 13 Января 2015, 15:07 | Сообщение # 6
старожил
Сейчас нет на сайте
overbolt, можно переносить используя символ "#" для переноса, попробуй строку с ним записать в ini, потом вывести.
Код
global.text="строчка1#строчка2#строчка3"


overboltДата: Вторник, 13 Января 2015, 15:08 | Сообщение # 7
Overbolt's Project
Сейчас нет на сайте
LunarPixel, Спасибо
  • Страница 1 из 1
  • 1
Поиск:

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