Пятница, 29 Марта 2024, 15:34

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Компилятор несет бред (GameMaker: Studio) (DoSet :: Invalid comparison type)
Компилятор несет бред (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
старожил
Сейчас нет на сайте
если вдруг еще актуально
Код
while(detected=false)

^


Сообщение отредактировал 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.
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Компилятор несет бред (GameMaker: Studio) (DoSet :: Invalid comparison type)
  • Страница 1 из 1
  • 1
Поиск:

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