Дата: Воскресенье, 31.03.2013, 21:12 | Сообщение # 1
Сообщений: [366]
Здравствуйте всем! Проблема с алярмами. Они просто взяли и перестали работать. Т.Е. в коде стоит alarm[0] = 30 , а алярм не принимает это. =( Вот код объекта :
Код
if keyboard_check(ord('D')) and idle = false { x += 4 } if keyboard_check(ord('A')) and idle = false { x -= 4 } if keyboard_check_pressed(ord('W')) and idle = false and jump = false { vspeed = -2 alarm[0] = 15 jump = true }
if keyboard_check_pressed(vk_space) { attack1 = true; idle = true; } if attack1 = false { idle = false } if attack1 = true { sprite_index = 'sprite_attack1'; alarm[2] = 3 idle = true } if attack2 = true { sprite_index = 'sprite_attack2'; alarm[3] = 10 idle = true alarm[2] = 20 } if keyboard_check_pressed(ord('F')) { alarm[1] = 10; idle = true } if attack2 = false { idle = false } if global.energy >= 100 and keyboard_check_pressed(ord('E')) { fatality = true } if fatality = true { instance_destroy() instance_create(x, y, 'fatality_screen') sprite_index = 'sprite_fatality_1' } global.xx = x global.yy = y
if bottom = true and ! bottom = false { vspeed = 3 }
if ! instance_exists('object_fatality_2') { sound_stop(sound_bz) }
if attack2 = false { block = false } if attack1 = false { block = false }
Добавлено (31.03.2013, 20:53) --------------------------------------------- Раньше работали, но как стал вводить спрайтовые изменения (раньше создавали отдельный объект, а сейчас просто меняет спрайт) возникают странные проблемы : - Пьяные Алярмы - Пьяные переменные - Пьяные sprite_index'ы
Добавлено (31.03.2013, 21:12) --------------------------------------------- Ах, да, еще пьяные кнопки. Жму кнопку E он мне создает другой объект. Хотя в коде вообще ничего нету про объект.
Дата: Понедельник, 01.04.2013, 13:24 | Сообщение # 3
( Не ленимся =) )
Сообщений: [1854]
DARNDZ, Лично я для начала посоветовал бы при сравнении использовать 2-а знака равно. Т.к. у меня были случаю когда в условии Гамак не сравнивал а присваивал, что логично по синтаксису.
Дак у тебя по Е стоит создание объета:
Код
if global.energy >= 100 and keyboard_check_pressed(ord('E')) { fatality = true } if fatality = true { instance_destroy() instance_create(x, y, 'fatality_screen') sprite_index = 'sprite_fatality_1' }
а лучше оформить так:
Код
if ((global.energy >= 100) and (keyboard_check_pressed(ord('E')))) { fatality = true; } if (fatality == true) { instance_destroy(); instance_create(x, y, 'fatality_screen'); sprite_index = 'sprite_fatality_1'; }
Дата: Понедельник, 01.04.2013, 16:33 | Сообщение # 4
Сообщений: [366]
Конструктор, я ставлю переменные в кавычки, т.е. говоря, что это переменные, а им пофиг =). Алярмы просто перестали работать. Т.Е. просто берут и не работают.
Дата: Понедельник, 01.04.2013, 18:26 | Сообщение # 5
( Не ленимся =) )
Сообщений: [1854]
DARNDZ, В какие кавычки ты ставишь переменные? В '' эти не нужно. И код instance_create(x, y, 'fatality_screen'); должен выглядеть так: instance_create(x, y, fatality_screen); Конечно стоит еще привыкнуть спрайты называть spr_имя, объекты obj_имя и т.д. Это позволит не путаться конструктору в одинаковых именах различных ресурсов. Работаю над Каваей.
Дата: Понедельник, 01.04.2013, 19:17 | Сообщение # 6
( περιμετρ )
Сообщений: [887]
Цитата (Конструктор)
В какие кавычки ты ставишь переменные?
Я же уже спросил насчёт кавычек, но последовал игнор. Большая часть "пьяных выходок" GM, связаны как раз с не правильным синтаксисом. Первое что бросается в глаза в предоставленном коде, так это использование string в качестве указателя индекса, что в большей степени может влиять на не правильную работу скрипта. Так же для условия false, а именно для задания противоположного значения или не верного значения переменной или функции, лучше использовать не !, а not, а именно:
Код
if bottom==true and not bottom==false
но для удобного написания можно использовать восклицательный знак, только в таком виде:
Дата: Понедельник, 01.04.2013, 20:24 | Сообщение # 7
Сообщений: [366]
Вообщем, всем спасибо за помощь. =) Ошибка кроется где-то в Draw'e . Но я просто переписал по-новой =) Получилось с этой же ошибкой, но я ее исправил. Всем спасибо =)