Компилятор несет бред (GameMaker: Studio)
|
|
Core | Дата: Четверг, 10 Июня 2021, 23:06 | Сообщение # 1 |
заслуженный участник
Сейчас нет на сайте
| Недавно переустанавливал GameMaker, а конкретно перешел на более новую версию. После переноса своего проекта, заметил следующую ошибку:
Код DoSet :: Invalid comparison type Конкретно ругается на эту строку:
Код var name,type,info,detected;
name=argument0; detected=false;
var i; i=0; while(detected=false) { if(objInventory.slot[i] == "")//ЭТА СТРОКА { <stuff> } i++; }
Ошибка, вроде как, говорит о присвоении переменной, содержания неподходящего для нее типа, но после просмотра кода, я не обнаружил ничего, что могло бы вызывать подобную реакцию компилятора.
P.S каждая ячейка массива slot имеет тип string, как и требуется для правильного выполнения кода.
Код //first bar slot[1] = ""; slot[2] = ""; slot[3] = ""; slot[4] = ""; slot[5] = ""; slot[6] = ""; slot[7] = ""; slot[8] = "";
P.S.S Ошибка появилась именно после переустановки конструктора.
Сообщение отредактировал Core - Четверг, 10 Июня 2021, 23:23 |
|
| |
drcrack | Дата: Понедельник, 14 Июня 2021, 16:28 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| если вдруг еще актуально
^
Сообщение отредактировал drcrack - Понедельник, 14 Июня 2021, 16:28 |
|
| |
Core | Дата: Понедельник, 14 Июня 2021, 23:22 | Сообщение # 3 |
заслуженный участник
Сейчас нет на сайте
| drcrack, А как это можно реализовать по-другому?
|
|
| |
DivES | Дата: Вторник, 15 Июня 2021, 00:36 | Сообщение # 4 |
заслуженный участник
Сейчас нет на сайте
| Core, речь о том, что ты используешь оператор присваивания ("=") в условии, когда нужно использовать оператор сравнения ("=="). Так что никакого бреда компилятор не несёт.
|
|
| |
MagicHero | Дата: Вторник, 15 Июня 2021, 10:18 | Сообщение # 5 |
участник
Сейчас нет на сайте
| DivES Это же gms2 и в нем не обязательно писать именно == он сам все заменит. Я когда начинал в gms2 делать игру то вообще никогда не использовал == что в if что в while и проблем не было. Я тогда даже и не знал что надо использовать == в проверках условий.
|
|
| |
maker-rus | Дата: Четверг, 17 Июня 2021, 12:58 | Сообщение # 6 |
Гений
Сейчас нет на сайте
| Цитата MagicHero ( ) DivES Это же gms2 и в нем не обязательно писать именно == он сам все заменит. Я когда начинал в gms2 делать игру то вообще никогда не использовал == что в if что в while и проблем не было. Я тогда даже и не знал что надо использовать == в проверках условий.
Цитата - Used to assign a value to a variable. Note that this can also be used for comparing variables in GameMaker Studio 2 and you may see this in examples and other peoples codes. However, this is a legacy from old GameMaker versions and you should use the == operators for comparing and = for assigning © YoYoGames Поэтому обязательно так делать, не известно, сколько такой метод будет еще актуален и когда его уберут, признав deprecated.
|
|
| |