Всем привет! Я работаю над игрой Terraria для PSP. Вот предыдущая тема Что же нового? -Проработал над гибкостью кода -Исправил кучу багов(почти половину) -Теперь не нужно закрывать игру что бы попасть в меню [достаточно нажать start] -Небольшой генератор уровней (находит горизонт и генерирует деревья) -система сохранения.загрузки карт -все пункты меню работают -немного физики Дальше планируется -Удалить оставшиеся замеченные баги -Добавить блоков -Попробовать добавить блок стены -Правильная система прохождения через блоки (Пока проходит только через воздух) -Ну выпустить Terraria PSP 0.1 [test] pre-release т.е. выложить в сеть)
Версия Test Release 0.1 -Установка/удаление блоков -Блок травы, земли, камня, досок, дерева, стекла, стены(земля, доски) -Загрузка/сохранение миров -Миры 32x32, 64x64, 96x64 в блоках -Небольшая физика -Меню и гуи интерфейс -Псевдо дверь=) при нажатии L (Пока для красоты) Скачать с depositfiles.com ~ 5mb клик
Test release 0.2 -Добавлена дверь -Стена из стекла -платформа через которую можно прыгать т.е с первого на второй этаж например -Молоток убирает стену -Изменено управление -Изменен скин игрока(Нужен дизайнер кто сможет лучше нарисовать) Клик
Сообщение отредактировано 3 января 2012 20:42. Редактировалось 1 раз(а)
unsigned int GetNearestCorrectSize(unsigned int Size) { unsigned int result; if (Size> 4096) result = 4096; if (Size<=4096) result = 4096; if (Size<=2048) result = 2048; if (Size<=1024) result = 1024; if (Size<=512) result = 512; if (Size<=256) result = 256; if (Size<=128) result = 128; if (Size<=64) result = 64; if (Size<=32) result = 32; if (Size<=16) result = 16; if (Size<=8) result = 8; if (Size<=4) result = 4; if (Size<=2) result = 2; return result; }
bool IsCorrectSize(unsigned int Size) { return (Size == 2) or (Size == 4) or (Size == 8) or (Size == 16) or (Size == 32) or (Size == 64) or (Size == 128) or (Size == 256) or (Size == 512) or (Size == 1024) or (Size == 2048) or (Size == 4096); }
GLuint CreateTexture(unsigned int Width, unsigned int Height, GLenum Format, GLubyte *data) { bool NeedResize = not (IsCorrectSize(Width) and IsCorrectSize(Height); GLubyte *data2; unsigned int WOld = Width; unsigned int HOld = Height; unsigned int Wcur = Width; unsigned int Hcur = Height; if (NeedResize) { Wcur = GetNearestCorrectSize(Width); Hcur = GetNearestCorrectSize(Height);
switch (Format) { case GL_RGB : data2 = (GLubyte *) malloc(Wcur*Hcur*3); case GL_RGBA : data2 = (GLubyte *) malloc(Wcur*Hcur*4); case GL_ALPHA: data2 = (GLubyte *) malloc(Wcur*Hcur); }
gluScaleImage(Format, WOld, HOld, GL_UNSIGNED_BYTE, data, Wcur, Hcur, GL_UNSIGNED_BYTE, data2); } GLuint Texture; glGenTextures(1, &Texture); glBindTexture(GL_TEXTURE_2D, Texture); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); if (!NeedResize) glTexImage2D(GL_TEXTURE_2D, 0, Format, Width, Height, 0, Format, GL_UNSIGNED_BYTE, data); else glTexImage2D(GL_TEXTURE_2D, 0, Format, Wcur, Hcur, 0, Format, GL_UNSIGNED_BYTE, data2); return Texture; }
Если хочешь помочь, при создании текстуры с размерами не степени 2, псп тухнет. Исправь если можешь.
Вот список что надо проделать в Terraria Beta: - Добавить задний фон (background) в меню и в игре - Прибавить скорость персонажу - Добавить оружия как Меч, Копье и т. д. - Добавить инвентарь (предлагаю на кнопку Select), и сундуки - Добавить персонажу жизни, ману, сердечки (которые находятся в подземке) - Добавить смену дня и ночи - Добавить NPC - Добавить пустыни, океаны, подземелье, подземные джунгли
Добавлено спустя 2 минуты 1 секунду:
Нет, Direct помочь ничем не могу(
p.s. и ещё размеры карт побольшеее))
Добавлено спустя 3 минуты 57 секунд:
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); Может, там должно быть MAP
Вот список что надо проделать в Terraria Beta: - Добавить задний фон (background) в меню и в игре - Прибавить скорость персонажу - Добавить оружия как Меч, Копье и т. д. - Добавить инвентарь (предлагаю на кнопку Select), и сундуки - Добавить персонажу жизни, ману, сердечки (которые находятся в подземке) - Добавить смену дня и ночи - Добавить NPC - Добавить пустыни, океаны, подземелье, подземные джунгли
Ты такой простой=) Я тут еще не до конца свой движок дописал=)
Насчет ошибки, функция не работает при загрузки текстур с размерами не (2 в степени i) т.е.проблема гдето тут gluScaleImage(Format, WOld, HOld, GL_UNSIGNED_BYTE, data, Wcur, Hcur, GL_UNSIGNED_BYTE, data2);
"" and "PlayStation" are registered trademarks of Sony Computer Entertainment Inc. "", PSP and "UMD" are trademarks of Sony Computer Entertainment Inc. "", "XMB", "Memory Stick Duo" and the "Memory Stick Duo" logotype are trademarks of Sony Corp. All product titles, publisher names, trademarks, artwork and associated imagery are trademarks, registered trademarks and/or copyright material of the respective owners. All rights reserved.