Random txt Срок жизни ресурса

Часы в форме

Форум сайта www.mizzystic.ru

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Форум сайта www.mizzystic.ru » Прошу помощи » Об опциях


Об опциях

Сообщений 1 страница 8 из 8

1

Недавно начал доделовать свою игру и вот дошёл до опций, сначала была проблема то-что когда менял разрешение все кнопки куда-то девались и нажать было их трудно но благодаря FaV я решил эту проблему, кстати спасибо ему) но вот как реализовать следуещие вещи я не знаю.
1.Сохранение настроек(я знаю что это делается через ини файл, но как?0_о)
2.Изменение настроек(я немного по размышлял и вот результат, например:
if keyboard_check_released(vverh) {vspeed+=2}
vverh - и тут всё. Я незнаю как сделать так что-бы опциях какую кнопку нажал такая и будет использоваться)

0

2

Я делал помню такие настройки, поищу пример, завтра обязательно кину

0

3

Этот код сохраняет опции. Он расположен в собынии нажатия мыши по "принять изменения":
if file_exists("tera.ini") //если файл существует, удаляем
{
ini_close()
file_delete("tera.ini")
}
if !file_exists("tera.ini") //если не существует...
{
ini_open("tera.ini") //...создаём и открываем для записи...
ini_write_string("Options","Background",string(global.bk)) //...и начинаем записывать переменные
ini_write_string("Options","Texture",string(global.obl))
ini_write_string("Options","Effects",string(global.effects))
ini_write_string("Options","Sound",string(global.sounds))
ini_write_string("Game options","Complexity",string(global.dif))
ini_write_string("Game options","Frequency",string(global.ballres))
ini_write_string("Game options","Health",string(global.hit))
ini_write_string("Another options","Superballs",string(global.sb))
ini_write_string("Another options","Bats",string(global.bat))
ini_write_string("Another options","Heal-balls",string(global.heal))
ini_write_string("Another options","Mines",string(global.mine))
ini_write_string("Another options","Player 1",string(global.gm1))
ini_write_string("Another options","Player 2",string(global.gm2))
ini_write_string("Another options","Player 3",string(global.gm3))
ini_write_string("Another options","Player 4",string(global.gm4))
}

А вот загрузка файла. Находится в событии создания:
global.obl=1 //здесь начальное объявление переменных
//Сложность (скорость ботов)
global.dif=6
//Хелсы
global.hit=50
//Частота выпадения шаров
global.ballres=300
//Доп. объекты (1-есть, 0-нет)
//Супершары
global.sb=0
//Отбивалки
global.bat=0
//Аптечки
global.heal=0
//Мины
global.mine=0
//Игроки и боты (0-игрок, 1-бот)
global.gm1=0
global.gm2=1
global.gm3=1
global.gm4=1

ini_open("tera.ini") //открываем файл...
global.bk = ini_read_string("Options","Background",string(global.bk)) //и присваиваем переменным значения из файла.
global.obl = ini_read_string("Options","Texture",string(global.obl)) //обрати внимание на string. 0 в переменной, и 0 в txt - совсем разные вещи.
global.effects = ini_read_string("Options","Effects",string(global.effects))// первый нолик - значение, но второй - лишь символ.
global.sounds = ini_read_string("Options","Sound",string(global.sounds))
global.dif = ini_read_string("Game options","Complexity",string(global.dif))
global.ballres = ini_read_string("Game options","Frequency",string(global.ballres))
global.hit = ini_read_string("Game options","Health",string(global.hit))
global.sb = ini_read_string("Another options","Superballs",string(global.sb))
global.bat = ini_read_string("Another options","Bats",string(global.bat))
global.heal = ini_read_string("Another options","Heal-balls",string(global.heal))
global.mine = ini_read_string("Another options","Mines",string(global.mine))
global.gm1 = ini_read_string("Another options","Player 1",string(global.gm1))
global.gm2 = ini_read_string("Another options","Player 2",string(global.gm2))
global.gm3 = ini_read_string("Another options","Player 3",string(global.gm3))
global.gm4 = ini_read_string("Another options","Player 4",string(global.gm4))

0

4

Код выдран из моей недоделанной игры. Вот здесь исходник.

+1

5

Спасибо FaV. if FaV.help=true {FaV.respect+=1}  :rofl:
Только я не понял куда деть этот код
ini_open("tera.ini") //открываем файл...
global.bk = ini_read_string("Options","Background",string(global.bk)) //и присваиваем переменным значения из файла.
global.obl = ini_read_string("Options","Texture",string(global.obl)) //обрати внимание на string. 0 в переменной, и 0 в txt - совсем разные вещи.
global.effects = ini_read_string("Options","Effects",string(global.effects))// первый нолик - значение, но второй - лишь символ.
global.sounds = ini_read_string("Options","Sound",string(global.sounds))
global.dif = ini_read_string("Game options","Complexity",string(global.dif))
global.ballres = ini_read_string("Game options","Frequency",string(global.ballres))
global.hit = ini_read_string("Game options","Health",string(global.hit))
global.sb = ini_read_string("Another options","Superballs",string(global.sb))
global.bat = ini_read_string("Another options","Bats",string(global.bat))
global.heal = ini_read_string("Another options","Heal-balls",string(global.heal))
global.mine = ini_read_string("Another options","Mines",string(global.mine))
global.gm1 = ini_read_string("Another options","Player 1",string(global.gm1))
global.gm2 = ini_read_string("Another options","Player 2",string(global.gm2))
global.gm3 = ini_read_string("Another options","Player 3",string(global.gm3))
global.gm4 = ini_read_string("Another options","Player 4",string(global.gm4))
Я кстати сам попробывал сделать настраеваемые кнопки и вот результат
Information about object: Up

Sprite: Mask
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent: <no parent>
Mask: Mask

Create Event:
execute code:

knopka = vk_up //кнопка по умолчанию
vybor=1
mouse_enter=0
nadpis='?'

Step Event:
execute code:

if vybor>=3 {vybor=0}
if vybor=2 {knopka = keyboard_lastkey}

if mouse_enter=1
{
vybor=1
}

if mouse_enter=1 && mouse_check_button_released(mb_left)
{
mouse_enter=2
}

if mouse_enter=2
{
vybor=2
}

if mouse_enter=3 && mouse_check_button_released(mb_left) && vybor=2
{
vybor=0
mouse_enter=0
}

nadpis=chr(knopka)
if nadpis='&' {nadpis='Вверх'}
if nadpis='%' {nadpis='Влево'}
if nadpis='(' {nadpis='Вниз'}
if knopka=39 {nadpis='Вправо'}
if knopka=16 {nadpis='Shift'}
if knopka=17 {nadpis='Ctrl'}
if knopka=18 {nadpis='Alt'}
if knopka=0 {nadpis='?'}
if knopka=20 {nadpis='Caps Lock'}
if knopka=8 {nadpis='Backspace'}
if knopka=192 {nadpis='~'}
if knopka=32 {nadpis='Space'}
if knopka=13 {nadpis='Enter'}
if knopka=97 {nadpis='Num1'}
if knopka=98 {nadpis='Num2'}
if knopka=99 {nadpis='Num3'}
if knopka=100 {nadpis='Num4'}
if knopka=101 {nadpis='Num5'}
if knopka=102 {nadpis='Num6'}
if knopka=103 {nadpis='Num7'}
if knopka=104 {nadpis='Num8'}
if knopka=105 {nadpis='Num9'}
if knopka=111 {nadpis='/'}
if knopka=106 {nadpis='*'}
if knopka=109 {nadpis='-'}
if knopka=107 {nadpis='+'}
if knopka=96 {nadpis='0'}
if knopka=110 {nadpis='.'}
if knopka=112 {nadpis='F1'}
if knopka=113 {nadpis='F2'}
if knopka=114 {nadpis='F3'}
if knopka=115 {nadpis='F4'}
if knopka=116 {nadpis='F5'}
if knopka=117 {nadpis='F6'}
if knopka=118 {nadpis='F7'}
if knopka=119 {nadpis='F8'}
if knopka=120 {nadpis='F9'}
if knopka=121 {nadpis='F10'}
if knopka=27 {nadpis='Esc'}
if knopka=93 {knopka=0}
if knopka=93 {nadpis='?'}

Mouse Event for Mouse Enter:
execute code:

mouse_enter=1

Mouse Event for Mouse Leave:
execute code:

mouse_enter=3

Draw Event:
execute code:

if vybor=2 {draw_rectangle_color(x,y,x+83,y+19,c_red,c_red,c_red,c_red,1)} //рисуем выделение
draw_rectangle_color(x-1,y-1,x+84,y+20,c_black,c_black,c_black,c_black,1) //рисуем границы
draw_text_color(x,y,nadpis,c_black,c_black,c_black,c_black,1) //рисуем надпись
draw_set_font(font0) //подключаем шрифт
И вроде всё работает(можете сами проверить) но как теперь сделать так что-бы у объекта кнопка зависила от переменной knopka
Пытался так
if keyboard_check_released(Up.knopka) {vspeed+=1} но это не работает(

Отредактировано Sadas (2010-06-08 11:22:03)

0

6

Не понял значения слов  кнопка зависила от переменной knopka. Я по твоему коду пример собрал, надписи не было. Тебе нужно, чтобы надпись высвечивалась? И зачем ты всунул верт. скорость?

0

7

Вот пример

Не понял значения слов  кнопка зависела от переменной knopka.

FaV Ну типа ты в опциях заменил кнопку и теперь в игре игрок действует с этой кнопкой которую нажал, а переменная knopka и есть кнопка которую нажал)

Тебе нужно, чтобы надпись высвечивалась?

Нет она уже показывается на кнопке где её меняешь

И зачем ты всунул верт. скорость?

Это для примера
Типа сделал игрока и в степ прописал if keyboard_check_released(Up.knopka) {vspeed+=1} но так как в кейборд_чек надо писать прописанную в гейм малер кнопку, и любая другая переменная переменная там(keyboard_check_released(Здесь)) работать не будет. И что теперь сделать?Что-бы всё работало.
P.S сделать новую константу уже пытался не работает((

Отредактировано Sadas (2010-06-10 16:50:31)

0

8

Короче тебе нужна настройка управления. Я тебе с наскока ничего посоветовать не могу, зайди на http://www.gm-rus.ru/. Там народ поопытнее будет. Единственное - форум неоправданно тормозит.

Отредактировано FaV (2010-06-10 21:09:01)

0


Вы здесь » Форум сайта www.mizzystic.ru » Прошу помощи » Об опциях


Рейтинг форумов | Создать форум бесплатно