Я давно хотел сделать блочную игру, но никогда не понимал, как это сделать на самом деле. Я вечно гуглил, и там не так много, а то, что есть, идет с условием, с которым я не хочу возиться (лицензия gpl, вся база кода и лицензия в любом проекте, бле). Поэтому я отправился на форум со своей проблемой. Я этого не знал, но я пытался сделать игру типа Puyo Puyo. Блоки падают с потолка, а затем очищаются, если есть совпадение 3 или более. Я понятия не имел о том, как сделать сопоставление. Что я и хотел узнать. Один очень милый, обаятельный и интеллигентный парень дал мне вот это:
http://hastebin.com/ziyejejoxu.js
Конечно, это довольно много, но то, как ему удалось это закодировать, позволило мне немного понять это. Однако есть одна досадная проблема. Одна, ровно ОДНА строка кода не компилируется и ломается. Я спросил его, могу ли я написать ему об этом по электронной почте, и он сказал хорошо. Я еще не получил ответа, поэтому, возможно, я его не получу, поэтому я беру это здесь. Вот как я использую код до сих пор. Есть две части: игровое состояние и часть головоломки:
Программа ломается в playstate, выдавая эту ошибку:
source/PlayState.hx:291: символы 33-52: доступ к массиву запрещен на x: Int -> Int
Что я пробовал:
Я предположил, что это не разрешено, потому что часть головоломки x является числом с плавающей запятой, и, конечно же, вы не можете вставить число с плавающей запятой в массив int. Итак, что я сделал, так это сначала просто в части головоломки преобразовать число с плавающей запятой в целое число. Это не сработало. ТОГДА в состоянии я переключил float на int. Это не сработало. В качестве упражнения я попытался преобразовать игру Flixel в HaxeFlixel, чтобы посмотреть, смогу ли я чему-нибудь научиться. Я, наверное, сделал это неправильно и не сделал.
Итак, вопрос: почему эта строка не компилируется и что мне нужно сделать, чтобы она скомпилировалась или достигла своей цели?