Hummer
scio me nihil scire
GM Pro user
Репутация: 335
Offline
Пол: Награды:
API: Game Maker 8.0 Pro
Деятельность: GML, С++, OpenGL, Java. Бывший Директор бывшей школы GML
Сообщений: 2573
|
|
« : Январь 11, 2011, 19:20:22 » |
|
Всем привет! Новички очень часто задают наивные вопросы по поводу ошибок, поэтому я выложу основные ошибки, объясню откуда они могут взяться и как от них избавляться. Начнём: 1)Variable name expectedВ переводе означает: "ожидается имя переменной". Это значит, что что-то не так с именем переменной имя переменной совпадает с именем любого ресурса нет имени переменной, когда функция возвращает какой-либо индекс Исправить можно следующими способами 1) Поменять имя переменной, чтобы не совпадало с именем ресурса или поменять название ресурса. 2) Присвоить функции переменную переменная=имя_функции()
2)Wrong number of arguments to function or scriptВ переводе означает: "неправильное количество аргументов в функции или скрипте". Её проще всего исправлять. посмотрите в справке эту функцию и сравните количество аргументов также возможно, что вы используете старую команду (использующуюся в более ранних версиях GM)
3)Unexpected symbol in expressionПереводится как "неожиданный символ в выражении". Возможно: вы использовали в названии переменной русские буквы - переименуйте её вы использовали русское имя ресурса, который написали в коде - переименуйте ресурс вы поставили лишнюю запятую или скобку instance_create(100, 500,, hero)) вы поставили знак равно, но ничего не присвоили вы не поставили точку с запятой после объявления переменных типа var и globalvar
4)Unknown function or scriptПеревод этой ошибки - "неизвестная функция или скрипт" вы сделали ошибку в названии функции или скрипта (встроенного или самописного) возможно вы использовали variable как функцию. Например: (ошибки) image_angle(30)//правильно image_angle=30 sprite_index(s_hero)//правильно sprite_index=s_hero
5)Unknown variableОзначает, что ГМ не может определить переменную Возможно вы не объявили переменную в событии Create. Например в событии Step вы пишете get+=5 Но ГМ не знает чему get было равно изначально, поэтому ошибка. Возможно вы используете переменную, определённую другим объектом. Чтобы это исправить используете global.+имя переменной или (объект у которого определена переменная).имя переменной//например hero.hp или with(объект у которого определена переменная) { //действия с переменной } Отсутствует объект, который содержит эту переменную, к которой вы обращаетесь. Например, это может происходить, когда противник движется по направлению к игроку: move_towards_point(Player.x,Player.y,3); Когда игрок погибает, появляется ошибка. Чтобы ее избежать, используйте условие: if instance_exists(Player) {move_...}
6)Cannot compare argumentsПеревод: не получается сравнить аргументы. Возникает в случае, если переменная одного типа сравнивается со значениями другого типа, либо при сложении разных типов данных. Решается переводом в другой тип данных: string(число)// переводит число в строку real(строка)// переводит строку в число
7)Division by 0 Глупая ошибка. Невозможность деления на 0. Если в процессе игры переменная меняет значение, то поставьте ограничение (если она является в знаменателе)
8)Unknown variable or array index out of boundsПеревод: Неизвестная переменная или индекс не соответствует размерам массива. Эта ошибка возникает в том случае, если индекс элемента, к которому обращается пользователь, меньше нуля или превышает максимальное количество элементов в массиве. Перед тем, как обращаться к элементам массива, их нужно сначала определить (инициализировать): mas[0] = 1; mas[1] = 2; ...
9)Only 1- and 2-dimensional arrays are supportedПеревод отвечает на вопрос о происхождении ошибки: Поддерживаются только одно- и двух-мерные массивы. То есть либо такие j[1]=5 либо такие j[7, 2]=5
10)Sound/Background/Image/Sprite/File does not existЗвук/Фон/Картинка/Спрайт/Файл и т д не существует Появляется когда Ресурс не возможно найти по заданной директории (его там нету или неправильно прописан путь или имя файла) Проверьте правильность написания имени файла (с расширением) и путь, по которому этот файл должен находиться.
11)Moving to next room after the last roomили же (одно и тоже) 11)Moving to previous room after the first roomНе существует следующей или предыдущей комнаты, куда вы собрались перемещаться. Если у вас разработка игры, то просто сделайте новые комнаты, иначе поставьте ограничение if(room_exists(следующая комната)) { room_goto_next() }
12)Symbol , or ) expectedЭта ошибка предупреждает вас, о том, что вы не поставили запятую или скобку, то есть не закончили скрипт. Например вы не поставили закрывающую скобку в конце скрипта instance_create(100, 500, obj_hero вы не поставили закрывающую квадратную скобку после объявления массива j[4=8
13)Assignment operator expectedОжидается оператор присвоения. Попросту говоря, нет знака равно или он поставлен больше, чем 1 раз (исключение - оператор if) g+p t/qwerty a+100500 image_angle Поставьте знак = там, где у вас идут действия (арифметические) и там, где идут функции (variable) g+=p t/=qwerty a+=100500 image_angle=30 Ещё имя переменной не должно начинаться с цифры, с любых знаков препинания (! , . ; "), а также знаков препинания (включая пробел) не должно быть во всём имени переменной.
14)Wrong type of arguments to +/-/*//100% вы попытались произвести арифметическую операцию со значениями разных типов (строковые и числовые) Воспользуйтесь переводом из одного вида в другой Если вам нужно склеить строки, то используйте string(число) Во всех остальных случаях переводите в числа real(строка) Учтите, что вычитать, умножать и делить строковые значения нельзя
15)Error defining an external functionЭти ошибки связаны с внедрением в ГМ dll библиотек. Более подробней здесь
16)Cannot assign variableВ гм есть особый вид данных: константы и read-only переменные. Неполный список первых true//=1 false//=0 pi//=3.14 а также ev_alarm ev_destroy ... vk_enter ... и т д Они постоянны на всём протяжении существования. Read-only переменные - в справке они помечены звёздочкой. Их нельзя задать кодом. К примеру room_width room_height fps current_time и т д
Раз они не могут изменяться, то такая запись как room_height=500 и приведёт к этой ошибке. Будьте внимательны!
17)Wrong type of array indexСвязанно, опять же, с массивами. Индекс массива поддерживает только числовые значение. Разрешённые варианты записей: array[2]='123' i=7 ar[i]=1 Запрещённые варианты записей: array['2']='123' i='7' ar[i]=1 Как переводить из строковых значений в числовые смотрите ошибку 14
18)Program ends before end the codeПрограмм закончилась, но код продолжился. Game Maker считает, что если в начале кода поставлен знак { , то там, где он закроется, будет конец программы. Пример такого безобразия { g=5 } s=4 Разберём: -1 строчка - знак { . По умолчанию начало программы. -2 строчка - присвоение переменной. -3 строчка - знак } . То есть данный код закончлся и Game Maker в недоумении почему пошли ещё какие то символы, поэтому сильно ругается. Исправим: g=5 s=4 ;) Спасибо FanTom'у upd: Ещё ошибки
|
|
« Последнее редактирование: Февраль 23, 2016, 00:33:57 от Hummer »
|
Записан
|
Есть вещи, которые нельзя объяснить. Для всего остального есть Справка Рандом-рандом-рандомище (с) C++ & OpenGL
|
|
|
UncleDec
|
|
« Ответ #1 : Январь 11, 2011, 19:33:42 » |
|
Молодец, +1! ;) Новичкам пригодится!
|
|
|
Записан
|
|
|
|
Dankov
|
|
« Ответ #2 : Январь 11, 2011, 19:42:34 » |
|
Хорошая штука. ;)Новичкам пригодится. Респект ;)
|
|
|
Записан
|
|
|
|
DeatHSoul
GM Pro user
Репутация: 236
Offline
Пол: Награды:
API: GameMaker Studio Standard
Сообщений: 478
|
|
« Ответ #3 : Январь 11, 2011, 22:39:07 » |
|
Тему прикрепил, полезная информация.
|
|
|
Записан
|
|
|
|
Vendet
Гл. Администратор
Репутация: 772
Offline
Пол:
API: Unity 3D
Сообщений: 3949
HellRoom Games
|
|
« Ответ #4 : Январь 11, 2011, 23:56:49 » |
|
Согласен, отличная статья, обязательно к прочтению ;)
|
|
|
Записан
|
|
|
|
Bars
Участник
Репутация: 7
Offline
Пол:
API: 8.0 Pro
Деятельность: игродел
Сообщений: 166
По многочисленным запросом мутанта больше нет :D
|
|
« Ответ #5 : Январь 12, 2011, 18:14:32 » |
|
Простите что за тупой вопрос. :( Что означает ***переменная***
|
|
|
Записан
|
|
|
|
Hummer
scio me nihil scire
GM Pro user
Репутация: 335
Offline
Пол: Награды:
API: Game Maker 8.0 Pro
Деятельность: GML, С++, OpenGL, Java. Бывший Директор бывшей школы GML
Сообщений: 2573
|
|
« Ответ #6 : Январь 12, 2011, 18:25:08 » |
|
переменная-особый вид данных, способный запоминать и изменять своё значение <переменная>=<значение> Обозначается латинскими буквами или цифрами с буквами Пример jump=0 Hi123='123123' f5e5=room_speed*8 Максимальное имя переменной - 64 символа
|
|
|
Записан
|
Есть вещи, которые нельзя объяснить. Для всего остального есть Справка Рандом-рандом-рандомище (с) C++ & OpenGL
|
|
|
Fantom
I am... All of me
Гл. Администратор
Репутация: 1325
Offline
Пол: Награды: ...
API: GameMaker Studio Master
Сообщений: 5026
|
|
« Ответ #7 : Январь 12, 2011, 18:38:10 » |
|
Что означает ***переменная***
И еще здесь почитай
|
|
|
Записан
|
|
|
|
Game Maker 8.001
Пользователь
Репутация: 0
Offline
Пол:
API: Tululoo
Сообщений: 50
|
|
« Ответ #8 : Январь 13, 2011, 12:56:21 » |
|
Статя,просто бомба ,лови !
|
|
|
Записан
|
|
|
|
merser433
Участник
Репутация: 5
Offline
Пол:
API: Game Maker 8.0 Pro
Деятельность: GameDev.
Сообщений: 100
=_=
|
|
« Ответ #9 : Январь 15, 2011, 12:17:02 » |
|
а что сделать что бы объект одновременном вращение и гравитации не исчезал?
|
|
|
Записан
|
|
|
|
Hummer
scio me nihil scire
GM Pro user
Репутация: 335
Offline
Пол: Награды:
API: Game Maker 8.0 Pro
Деятельность: GML, С++, OpenGL, Java. Бывший Директор бывшей школы GML
Сообщений: 2573
|
|
« Ответ #10 : Январь 15, 2011, 12:23:31 » |
|
а что сделать что бы объект одновременном вращение и гравитации не исчезал?
Это не решение проблем, а статья об ошибках, вылезающих при игре! (окошко такое) Но могу дать совет. В событии Create gravity_direction=270 gravity=//число А при вращении используй image_angle
|
|
|
Записан
|
Есть вещи, которые нельзя объяснить. Для всего остального есть Справка Рандом-рандом-рандомище (с) C++ & OpenGL
|
|
|
Кирюха
Участник
Репутация: 4
Offline
Пол:
API: GameMaker Studio Pro
Деятельность: спрайтер, начинающий гейм-дизайнер, программист gml.
Сообщений: 113
Пиксель арт - это искусство
|
|
« Ответ #11 : Февраль 04, 2011, 09:41:26 » |
|
ребят, а можно тут такой вопросик задать: в одной игре я использую самописный код под названием dialog (из названия понятно что он отвечает за диалоги!=)) и вот когда я запускаю игру Game Maker мне пишет: Error Creating Stand-Alone: Cannot save the game data и ещё что то там про dialog пишет. что это может значить и как это исправить?
|
|
|
Записан
|
работаю над: Bloble, Ninja Runner
|
|
|
Alcatraz
|
|
« Ответ #12 : Февраль 04, 2011, 10:18:56 » |
|
посмотри о чём эта ошибка говорит, и я непонимаю в чём дело, скинь код твой, где ты его писал, что писал, или скинь лог ошибки.
|
|
|
Записан
|
|
|
|
Fantom
I am... All of me
Гл. Администратор
Репутация: 1325
Offline
Пол: Награды: ...
API: GameMaker Studio Master
Сообщений: 5026
|
|
« Ответ #13 : Февраль 04, 2011, 12:45:39 » |
|
Error Creating Stand-Alone: Cannot save the game data
Обычно эта ошибка возникает, если игра (откомпилированный EXE) уже запущена, и ты пытаешься ее перекомпилировать, а так как EXE запущен, он защищен от записи в это время.
|
|
|
Записан
|
|
|
|
Кирюха
Участник
Репутация: 4
Offline
Пол:
API: GameMaker Studio Pro
Деятельность: спрайтер, начинающий гейм-дизайнер, программист gml.
Сообщений: 113
Пиксель арт - это искусство
|
|
« Ответ #14 : Февраль 04, 2011, 16:00:52 » |
|
благодарю за информацию ;)
|
|
|
Записан
|
работаю над: Bloble, Ninja Runner
|
|
|
|