Сделал пример 3д движка. Есть перспективно-корректное текстурирование, буфер глубины, спрайт, загрузка из obj и 3ds. waper.ru/file/1698139/download/873e0a65ce04e2c5ab5/engine3d_1.1.rar реал тайм игру конечно не сделаеш т.к. из-за буфера глубины сильно тормазит и много памяти на него уходит, но какой-то квест с тайловым уровнем можно сделать. хотя даже для таких игр как doom rpg буфер глубины не нужен. Да и формат нужен свой, чтобы меньше размер был. Вообщем как пример этот движок хорош. Для создания игр он не очень подходит.
Monstr1, добрый вечер. Вот, держи конструктор программ J2ME SDK Mobile (IDE нa java)... Он умеет создавать не только программы, но и игры. Конструктор настолько мощный, что позволяет управлять абсолютно любой переменной: создавать, удалять, изменять значения... Можно писать комментарии, чтоб не запутаться. Создавать из наборов операций функции, а из них классы. В общем, качай
YuReC.CoM, Я немного погуглил... google.com/?q=what+the+fuck+java.lang.ref+is+for%3F Как я понял, для того, чтобы убедиться, что объект был очищен. Например, если на объект уже нет прямых ссылок, его все еще можно получить из WeakReference , но ровно до того момента, как запускается сборщик мусора...
LPzhelud, не совсем для этого. Не помню, писал я или нет, объясню еще раз. Этот пакет предназначен для того, чтобы более гибко управлять сборщиком мусора. Обычно мы работаем с жесткими ссылками на объекты. Пока на объект есть жесткие ссылки, сборщик мусора не будет его собирать. Однако есть еще мягкие ссылки, слабые и фантомные. Мягкие могут быть очищены сборщиком мусора при нехватке памяти, слабые очищаются при следующем запуске сборщика мусора, а фантомные нужны только для того, чтобы понять, что сборщик мусора добрался до объекта. Слабые и мягкие ссылки тоже можно использовать для последнего, но фантомные используются только для этого. На Java ME доступны только слабые. Они нужны для того, чтобы хранить объект, пока он вообще хоть где-то используется. На Java SE есть еще специальный класс, WeakHashMap, который работает как Hashtable, только ключи хранятся со слабыми ссылками. Если ключ перестает использоваться вне WeakHashMap, то запись исчезает.
Malcolm, зачем мне использовать weak references и хвататься за голову, когда объект внезапно исчезает, когда я могу спокойно использовать direct references и, поиспользовав, <strike>выбросить на свалку</strike> присвоить ссылке null, оставив объект на попечение сборщику мусора. Хотя это можно превратить в аналог "Жизни": занимать всю память слабыми ссылками на объекты, которые созаются в нескольких параллельных тредах и наблюдать. Иными словами, не могу представить практическое примение. Еще спрошу покорректнее гугл
LPzhelud, да зачем использовать исключительно слабые ссылки? Используются и те, и другие. У меня, если не ошибаюсь, в библиотеке для работы с GIF был код, который при открытии кадра не только возвращает изображение, но и сохраняет его в слабой ссылке. Пока изображение где-то в программе еще используется, оно останется закэшированным, и можно будет обращаться за ним туда же. А если оно перестанет где-либо использоваться, следующая же сборка мусора все это дело соберет. Правда, тут SoftReference подошли бы лучше, но их, увы, нет. WeakHashMap удобно использовать, если нужно ассоциировать какую-то информацию с объектом, которая станет ненужной, если объект перестанет использоваться. Объект используется как ключ, а информация - как значение. Если объект перестает использоваться в программе, то запись автоматически исчезает.
Malcolm, всё равно мне не понятен смысл. Если объект где то используется, то и ссылка на него есть. Зачем создавать лишний объект (WeakReference в данном случае)?
24 июл 2011 в 20:52
waper.ru/file/1698139/download/873e0a65ce04e2c5ab5/engine3d_1.1.rar
реал тайм игру конечно не сделаеш т.к. из-за буфера глубины сильно тормазит и много памяти на него уходит, но какой-то квест с тайловым уровнем можно сделать. хотя даже для таких игр как doom rpg буфер глубины не нужен. Да и формат нужен свой, чтобы меньше размер был. Вообщем как пример этот движок хорош. Для создания игр он не очень подходит.