Вопрос-Ответ (для начинающих)
Очень рад, что на форуме наконец-то появился тематический раздел посвященный Monkey.
В этой теме предлагаю задавать вопросы тем, кто начинает свое знакомство с Monkey или переходит на него с BlitzMax или Blitz3d. В последствии тему можно будет переформировать во что-то типа FAQ. |
Ответ: Вопрос-Ответ (для начинающих)
1. Возможен ли нормальный дебаг? Точки останова, пошаговое исполнение и просмотр значений переменных? И на каких платформах это возможно.
2. Как читать бинарные файлы на таргетах ios и android (неплохо бы и html5) 3. Почему таргет HTML5 добавляет все ресурсные файлы в подпапку data, но при этом не учитывает это изменение пути при загрузке этих файлов? (файл для всех платформ лежит в корне, для html5 это уже data/file.ext) |
Ответ: Вопрос-Ответ (для начинающих)
1. Возможен. На C++ платформах, например, GLFW. Работает также как и в BlitzMax через DebugLog и DebugStop.
2. С помощью модуля brl.databuffer, работает на всех платформах. Для того, чтобы файл считался бинарным его нужно добавить в #BINARY_FILES. По умолчанию бинарными файлами считаются все файлы с расширениями .bin и .dat 3. У всех платформ схожий принцип работы с ресурсами - все ресурсы помещаются в подпапку data (или подобную ей) и загружаются без указания этой папки. Можно пример, где это не работает? |
FAQ по Monkey
Небольшой диалог с devolonter.
Собран из истории сообщений со мной. Мало ли кому пригодится. Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
На мой русский не смотрите. |
Ответ: FAQ по Monkey
От себя хочу добавить, беседа велась по версии V64. В новых версиях некоторые моменты изменены, а баги пофикшены.
Если вы используете последнюю версию то: - Баг с акселерометром, под Android был пофикшен. Теперь он везде работает одинаково - Баг с чтением строк также был пофикшен. В новых версиях никаких файлов заменять не нужно - CONFIG.TXT переименован в CONFIG.MONKEY. Также вы можете задавать конфигурацию приложения c помощью препроцессора. Добавляя к опции #. Например, #ANDROID_APP_LABEL = "Title" |
Ответ: Вопрос-Ответ (для начинающих)
Такой вопрос: как там у monkey с 3д графикой? Прошу прощения если этот вопрос уже был
|
Ответ: Вопрос-Ответ (для начинающих)
Есть официальный модуль OpenGL, есть более "дружелюбный" модуль от сообщества minib3d для Monkey. Правда не знаю работает ли он с демо-версией.
Но в целом, для 3d Monkey не лучший выбор, по крайней мере пока. |
Ответ: Вопрос-Ответ (для начинающих)
Спасибо
Цитата:
|
Ответ: Вопрос-Ответ (для начинающих)
Цитата:
Если хочешь заняться разработкой под Android то возьми сответствующий движёк. Или если хочешь реально скилл подтянуть, возьми лучше вообще чистый C++ + NDK и немного Java - и вперёд. |
Ответ: Вопрос-Ответ (для начинающих)
Цитата:
Цитата:
|
Ответ: Вопрос-Ответ (для начинающих)
Можно узнать подробнее о работе с файлами на таргете HTML5? Интересует и запись, и чтение.
|
Ответ: Вопрос-Ответ (для начинающих)
Цитата:
Реализации HTML5 версии этих модулей мешает отсутствие поддержки File API в IE9 и отсутствие поддержки FileWriter API в большинстве браузеров. |
Ответ: Вопрос-Ответ (для начинающих)
Хм, то есть никакого способа записывать информацию нету?
|
Ответ: Вопрос-Ответ (для начинающих)
Если это необходимо для сохранения/восстановления состояния игры, то есть специальные функции LoadState/SaveState
|
Ответ: Вопрос-Ответ (для начинающих)
Если это для хранения данных сохранения, то для HTML5 есть два способа.
Offlie Storage, либо отправлять данные на сервер и хранить на сейв-сервере. Используйте HTML5 как полагается, т.к. там же куча крутых фичь есть, которые в нативном мире не доступны.. |
Ответ: Вопрос-Ответ (для начинающих)
Цитата:
|
Ответ: Вопрос-Ответ (для начинающих)
LoadState/SaveState не совсем подходит из-за ограничения в объеме.
Можно подробнее о записи на сервер? В какую сторону копать? |
Ответ: Вопрос-Ответ (для начинающих)
Цитата:
Если говорить о записи на сервер, то тут реализация полностью на вашей стороне. Можете написать несколько методов и посредством запросов сохранять данные на сервере и читать их. Как данные будут храниться на сервере, в БД или по другому, не важно - главное чтобы доступ к ним был организован посредством какого-то API. Для общения с сервером используйте модуль brl.httprequest. |
Ответ: Вопрос-Ответ (для начинающих)
Спасибо за Error(""). :)
|
Ответ: Вопрос-Ответ (для начинающих)
Скажите, Уважаемые, я вот разрабатывал игры под свой самсунг таб 2, 1024х600, тестировал на устройствах, меньших по разрешению - все работает. пробовал на таб3 8 дюймов, 10 дюймов, на самсунг мега пробовал - в общем там, где разрешение более 1024х600 (совпадение, возможно) - не работает. В чем может быть причина?
|
Ответ: Вопрос-Ответ (для начинающих)
Что-то неработающее приложение выводит в качестве ошибки?
|
Ответ: Вопрос-Ответ (для начинающих)
Черный экран и последующий вылет.
|
Ответ: Вопрос-Ответ (для начинающих)
Может быть всякое, от неправильно заполненного манифеста, где экраны такого разрешения не указаны в качестве поддерживаемых, до превышения размеров максимально поддерживаемых картинок/текстур, или нехватки памяти.
Набор графики один? Или несколько? |
Ответ: Вопрос-Ответ (для начинающих)
Надо смотреть в logcat, какие там есть сообщения (хотя если не вылетает с ошибкой то может там и не будет ничего нужного). Еще можно вставить в прогу вывод toast сообщений в разных местах, чтобы найти глючное место. Выхов,, андроид-функций доступен из манки-кода, но я не пробовал.
|
Ответ: Вопрос-Ответ (для начинающих)
Могу посмотреть лог проги на нексусе с экраном 1920*1200, обращайся если нужно.
|
Ответ: Вопрос-Ответ (для начинающих)
попробую в ближайшее вермся сделать приложение-пустышку, проверить, запуститься ли. отпишусь :)
|
Ответ: Вопрос-Ответ (для начинающих)
Блин, вот, запускаю апк, начинает играть музыку, секудн 5, затем вылет.
что делать? Это же столько потенциальных клиентов вылетает. Хм, за весь процесс игры было 64 билда игры, ни 25, ни 64 не хотят запускаться :( |
Ответ: Вопрос-Ответ (для начинающих)
Наверное много памяти юзаешь.
|
Ответ: Вопрос-Ответ (для начинающих)
Предыдущем телефоне был гиг и тут работаю, на сегодняшнкм полтора, не работает.
|
Ответ: Вопрос-Ответ (для начинающих)
Ребята-котята, теперь меня можно назвать бизнесменом. Предлагаю вашему внимаю мой первый проект, который опубликован во всемирном обществе интернет, трудилисьнад проектом ровно год, два человека, я и Роман - художник и просто хороший человек нашей конторы. Год был сложный, но игра увидела свет! Предлагаю ознакомиться с игрой по ссылке:
https://play.google.com/store/apps/d....tetramasterHD Кому проект будет по душе, буду благодарен копеечкой. Спасибо за внимание. |
Ответ: Вопрос-Ответ (для начинающих)
Есть несколько вопросов:
1. Можно ли сделать подобие setClip круглой или произвольной формы? 2. Как заюзать функцию ReadPixels? что-то не нашёл как нарисовать массив пикселей. 3. Как сделали демку MOJOMATOSIS? я впечатлён:) кажется что это чистый OGL, хз. |
Ответ: Вопрос-Ответ (для начинающих)
1. Для OGL таргетов можно воспользоваться стенсил буфером из этого модуля: nDrawExts2. Для HTML5, Flash таргетов добавить реализацию не сложно. По остальным таргетам сказать ничего не могу
2. Пример использования можно найти в папке с примерами bananas/mak/dynamicimage 3. Как раз наоборот - тут софтварный рендер. Как делали - сказать сложно, возможно не обошлось без нативных вставок. |
Ответ: Вопрос-Ответ (для начинающих)
Печально, что до сих пор нельзя проверять существование массива через Null. Видите ли, у них там "Can't balance types Int[] and {NULL}". :)
Массив, это же объект. Остаётся проверять через Not. Не работает: Код:
Local arr$[] Код:
Local arr$[] |
Ответ: Вопрос-Ответ (для начинающих)
Уважаемый devolonter, как произвольную загруженную картинку, обрезать по заданной форме?
Или это только заранее можно , с помощью альфа канала ? |
Ответ: Вопрос-Ответ (для начинающих)
Подскажите идиоту, как из класса объект самоуничтожить?
а то я обратил внимание, что всегда везде пишу во внешних цикла. For Local p:TBullet = Eachin Bullets p.Update() If p.TimeLife<MS Then Bullets.Remove p Next и лишь удалю из списка, объект при этом висит в памяти. А как можно самоуничтожить объект из собственного метода? |
Ответ: Вопрос-Ответ (для начинающих)
Я обычно в классе объектов храню глобальный список на экземпляры. Потом когда нужно удалить объект, то вызываю list.remove (self). Если больше никто на этот объект не ссылается, то он будет удален из оперативной памяти сборщиком мусора.
|
Ответ: Вопрос-Ответ (для начинающих)
Данил, ты в чём кодишь? Пробовал ли мой редактор?
|
Ответ: Вопрос-Ответ (для начинающих)
Цитата:
нет, ссылку? |
Ответ: Вопрос-Ответ (для начинающих)
Ссылка: http://yadi.sk/d/9KEYmfrLLvYBq
Прочитай readme.txt. Обсуждение редактора в этой теме: http://forum.boolean.name/showthread.php?t=19012 |
Часовой пояс GMT +4, время: 07:38. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot