Результаты поиска
| |
afq | Дата: Воскресенье, 11 Ноября 2018, 03:31 | Сообщение # 701 | Тема: SDL2 + OPENGL для Windows |
Разработчик
Сейчас нет на сайте
| Помогите настроить, что нужно скачать куда вписать, чтобы заработало в windows игра в связке sdl2 + opengl + [ glu ] ( glu это опционально, её не надо, но чтобы знать, то же не помешает ). В линуксе то легко всё настраивать, проблем нет, а в windows я не могу.
|
|
| |
afq | Дата: Суббота, 10 Ноября 2018, 01:59 | Сообщение # 702 | Тема: Картинка исчезает когда доходит до края экрана |
Разработчик
Сейчас нет на сайте
| DivES, Цитата Если так говорить, то никогда не станешь программистом) Ну учитывая то, что у меня нет даже образования, то я точно никогда не стану программистом.
Цитата Так ты значит пока что сурфейсами на экран выводишь, без рендерера? Вывожу средствами opengl.Добавлено (10 Ноября 2018, 04:39) --------------------------------------------- DivES, решил сделать отдельный проект, но только с текстурами, и вот проблема, я думал что текстура будет сжиматься до определенного размера, а вышло что не так. Вот может я неправильно что в коде указал, но рисуется вот так.

Установил glOrtho
Код glOrtho ( 0.0f, 1.0, 0.0 /*screen_height*/, 1.0 /*0.0f*/, 0.0f, 1.0f );
Также оптимизировал для текстуры код.
Код #include "Sprite.hpp"
Sprite::Sprite ( long pos ) { //init_texture ( ); }
Sprite::Sprite ( ) { }
void Sprite::free_data ( ) { // if ( texture ) free ( texture ); if ( vertices ) free ( vertices ); if ( pixels ) free ( pixels ); } void Sprite::load ( long pos ) { offset = pos; std::FILE *fd = std::fopen ( "data", "r" ); if ( !fd ) { std::perror ( "sprite load" ); exit ( EXIT_FAILURE ); }
int ret; ret = std::fseek ( fd, pos, SEEK_SET ); if ( ret == -1 ) { perror ( "fseek\n" ); }
ret = std::fread ( &width, sizeof ( unsigned int ), 1, fd ); if ( ret == -1 ) { perror ( "width\n" ); } ret = std::fread ( &height, sizeof ( unsigned int ), 1, fd ); if ( ret == -1 ) { perror ( "heigth\n" ); } ret = std::fread ( &max_pixels, sizeof ( unsigned int ), 1, fd ); if ( ret == -1 ) { perror ( "max_pixels\n" ); }
pixels = new unsigned char [ max_pixels ]; if ( !pixels ) { printf (" !@!\n" ); }
ret = std::fread ( &pixels[0] , sizeof ( unsigned char ), max_pixels, fd ); if ( ret == -1 ) { perror ( "pixels\n" ); } std::fclose ( fd );
glGenTextures ( 1, &tex ); glBindTexture ( GL_TEXTURE_2D, tex ); #if 1 glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR ); glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER ); glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER ); glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_BORDER ); #endif // gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA, width, height, GL_RGBA, GL_UNSIGNED_BYTE, pixels );
glTexImage2D ( GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels ); glEnable ( GL_TEXTURE_2D );
max_draw = height * width; vertices = new float [ 3 * 2 ]; vertices[0] = 0.0f; vertices[1] = 0.3f; vertices[2] = 0.3f; vertices[3] = 0.0f; vertices[4] = 0.3f; vertices[5] = 0.3f; } void Sprite::render ( ) { #if 1 if ( y > 1.0 ) return; if ( y < -0.3 ) return; #endif
glBindTexture ( GL_TEXTURE_2D, tex ); glPushMatrix ( );
#if 0 glFrontFace ( GL_CCW ); glEnable ( GL_CULL_FACE ); glCullFace ( GL_BACK ); #endif
glTranslatef ( this->x, this->y, 0 );
glEnableClientState ( GL_VERTEX_ARRAY ); glEnableClientState ( GL_TEXTURE_COORD_ARRAY );
glVertexPointer ( 2, GL_FLOAT, 0, vertices ); glTexCoordPointer ( 2, GL_FLOAT, 0, vertices ); glDrawArrays ( GL_TRIANGLES, 0, 6 );
glDisableClientState ( GL_VERTEX_ARRAY ); glDisableClientState ( GL_TEXTURE_COORD_ARRAY );
// glDisable ( GL_CULL_FACE ); // glTranslatef ( 0, 0, -10 );
glPopMatrix ( );
glFlush ( ); }
int Sprite::get_width ( ) { return width; }
int Sprite::get_height ( ) { return height; }
int Sprite::get_x ( ) { return x; }
int Sprite::get_y ( ) { return y; }
void Sprite::set_pos ( int x, int y ) { this->x = x; this->y = y; }
void Sprite::slice ( int width, int height ) { }
int Sprite::get_max_frames ( ) { return max_frames; }
Добавлено (11 Ноября 2018, 02:33) --------------------------------------------- DivES, а, всё, разобрался.
|
|
| |
afq | Дата: Пятница, 09 Ноября 2018, 22:46 | Сообщение # 703 | Тема: Картинка исчезает когда доходит до края экрана |
Разработчик
Сейчас нет на сайте
| DivES, у меня есть вариант кода, только без этой игры на шейдерах, но на сишке написан. Эту основу я на c++ писал, здесь я вывожу вершины с помощью glVertexPointer а цвета glColorPointer. Искажение происходит только при анимации. Такое же искажение может происходить при просмотре фильма высокого качества. Если бы я в windows это сделал, то скорее всего такого бы искажения не было бы. Вот если в nvidia настройках отключить "Sync to VBlank", то искажений нет, но картинка не так плавно движется тогда.
|
|
| |
afq | Дата: Пятница, 09 Ноября 2018, 22:25 | Сообщение # 704 | Тема: Картинка исчезает когда доходит до края экрана |
Разработчик
Сейчас нет на сайте
| DivES, sdl2 + opengl в линуксе. Добавлено (09 Ноября 2018, 22:27) --------------------------------------------- DivES, да, как искажение на картинке.
|
|
| |
afq | Дата: Пятница, 09 Ноября 2018, 22:00 | Сообщение # 705 | Тема: Картинка исчезает когда доходит до края экрана |
Разработчик
Сейчас нет на сайте
| DivES, если запихнуть все спрайты в sprites[y][x], то можно будет сразу по горизонтали 6 картинок выводить. Добавлено (09 Ноября 2018, 22:02) --------------------------------------------- DivES, поменял на это, так быстрее будет, чем двумерный массив.
Код for ( int i = 0; i < MAX_SPRITES; i++ ) { s1[i].render ( ); s2[i].render ( ); s3[i].render ( ); s4[i].render ( ); s5[i].render ( ); s6[i].render ( ); }
Добавлено (09 Ноября 2018, 22:19) --------------------------------------------- DivES, на видео не видно, но без записи видно какое то искажение экрана, может ты знаешь что это?
|
|
| |
afq | Дата: Пятница, 09 Ноября 2018, 21:45 | Сообщение # 706 | Тема: Картинка исчезает когда доходит до края экрана |
Разработчик
Сейчас нет на сайте
| DivES, у меня уже сделано так как есть, можно конечно переделать, но оно и так работает, и функции другие уже под них подстроены. Да помогло, прям в render сделал проверку на y < -256 return, и всё работает, спасибо. Но всё равно не понятно, почему, ведь логично же
Код if ( s1[i].get_y() <= screen_height && s1[i].get_y() > -256 ) s1[i].render ( );
Нет ведь ошибок, почему не рисует не пойму.Добавлено (09 Ноября 2018, 21:47) --------------------------------------------- DivES, а у меня рендер не так устроен, а в каждом спрайте храниться рисунок. А так я как ты написал даже не подумал, спасибо.
|
|
| |
afq | Дата: Пятница, 09 Ноября 2018, 19:17 | Сообщение # 707 | Тема: DELITED |
Разработчик
Сейчас нет на сайте
| Core, если не можешь создать игру, то делай как я. Представляй игру и играй в неё.
|
|
| |
afq | Дата: Пятница, 09 Ноября 2018, 19:14 | Сообщение # 708 | Тема: Картинка исчезает когда доходит до края экрана |
Разработчик
Сейчас нет на сайте
| Я пока ещё текстурами не рисовал, попробую сначала такую сделать, а потом и текстурами заморочусь, когда игра будет играбельна. Вот проблема.
Код for ( int i = 0; i < MAX_SPRITES; i++ ) { //if ( ( s1[i].get_y() <= screen_height ) && ( s1[i].get_y() > -512 ) ) s1[i].render ( ); s1[i].render(); } for ( int i = 0; i < MAX_SPRITES; i++ ) { if ( s2[i].get_y() <= screen_height && s2[i].get_y() > -512 ) s2[i].render ( ); }
Я привел фрагмент кода, в первом ряду я закоментировал строку, и написал рендерить все картинки в столбце. Второй ряд, и все остальные доходя до края экрана, то есть до y = 0 координат, картинка исчезает, хотя у меня написано, чтобы рисовалось если по y координате больше -512 ( но 512 это я замахнулся, когда подумал что может что-то не так с размером, а так надо -256 ).
Вот скрин, я убрал все остальное и оставил только картинки. По ней видно, что первый столбец рисуется, а остальные нет внизу.
|
|
| |
afq | Дата: Пятница, 09 Ноября 2018, 01:19 | Сообщение # 709 | Тема: Как делают изображение одинаковым на разных разрешениях |
Разработчик
Сейчас нет на сайте
| Animan2010, а я тут понаделывал. Блин, я уже забыл как текстурой выводить, это значит что экран ortho выставлять в ( 1.0, 1.0 ) и тому подобное да? Так как я с текстурой как то были проблемы, я тогда незнал ещё о GL_BLEND ( о прозрачности ), и начал делать через glVertexPointer и glColorPointer. А надо блин с текстурой значит да?
|
|
| |
afq | Дата: Пятница, 09 Ноября 2018, 00:24 | Сообщение # 710 | Тема: Как делают изображение одинаковым на разных разрешениях |
Разработчик
Сейчас нет на сайте
| 
Вот я например делаю игру игровой автомат, мне что, для каждого разрешения нужно отдельные картинки рисовать?
|
|
| |
afq | Дата: Четверг, 08 Ноября 2018, 19:15 | Сообщение # 711 | Тема: Как наверстать забытое? |
Разработчик
Сейчас нет на сайте
| Пользовался unity год назад или больше, потом забросил. Щас опять взялся и ничего не помню. Как мне быстренько войти в курс дел. Какие есть сайты с документацией? Как вообще мне теперь обучаться?
|
|
| |
afq | Дата: Среда, 07 Ноября 2018, 22:41 | Сообщение # 712 | Тема: Как делают изображение одинаковым на разных разрешениях |
Разработчик
Сейчас нет на сайте
| DivES, масштаб, вот например запусти игру while learn true, кнопки меню будут одного размера при 1024x768 и при 1920x1080.
|
|
| |
afq | Дата: Среда, 07 Ноября 2018, 18:52 | Сообщение # 713 | Тема: Как делают изображение одинаковым на разных разрешениях |
Разработчик
Сейчас нет на сайте
| Не помню уже, создавал ли я эту тему на этом сайте. Вот например игра на unity, когда запускаешь её, она выдает окно, в котором выбираешь разрешение экрана, в котором хочешь запустить игру. Запустив игру на любом разрешении, картинка не меняется. Как это можно сделать не пойму? Для разных разрешений делать разные картинки или как то по другому?
|
|
| |
afq | Дата: Вторник, 06 Ноября 2018, 20:20 | Сообщение # 714 | Тема: В файле данных вся информация |
Разработчик
Сейчас нет на сайте
| Я вот что подумал, щас развиваю идею, думаю так делают тоже движки ( а может и нет ), то что я задумал. Может это правильно, а может и нет. Кто что напишет. Решил создать файл данных, в нем будут находиться разрешения экранов, и для каждого разрешения свои картинки. Программа будет только считывать данные из файла и обрабатывать. Например если картинка должна быть по координатам x = 100, y = 100, то это будет в файле данных записано, а программа ( игра ) будет считывать и отображать. В таком случае, можно даже dlc добавлять в игру, не меняя кода в самой игре, главное всё предусмотреть.
|
|
| |
afq | Дата: Суббота, 27 Октября 2018, 21:10 | Сообщение # 715 | Тема: Утилита для увеличения изображения |
Разработчик
Сейчас нет на сайте
| martuk, какой диструбутив линукса используешь? Как psd файлы читаешь? Напиши ещё что нибудь полезное. У меня сейчас kde neon стоит, я на него перешел из-за zeal, zeal в xfce большим размером показывается. Вот думаю перейти на manjaro, но стоит ли оно этого, что всё программное обеспечение будет последних версий?
|
|
| |
afq | Дата: Вторник, 16 Октября 2018, 15:07 | Сообщение # 716 | Тема: Требуется 2D-художник (создание юнитов с анимацией) |
Разработчик
Сейчас нет на сайте
| ss87ss, если научишь меня делать такие модельки, то я может быть сделаю одну бесплатно, а может и больше. За ранее не хочу давать надежды, потому что зависить от процесса создания таких моделей.
|
|
| |
afq | Дата: Понедельник, 15 Октября 2018, 21:10 | Сообщение # 717 | Тема: Ищу людей(Энтузиазм) |
Разработчик
Сейчас нет на сайте
| teta, так может так случиться что никто не захочет в команде быть и ты просто так дома несколько лет просидишь.
|
|
| |
afq | Дата: Суббота, 13 Октября 2018, 10:15 | Сообщение # 718 | Тема: Утилита для увеличения изображения |
Разработчик
Сейчас нет на сайте
| martuk, я тут учу php, хочу заняться веб разработкой и у меня вопрос, а где я могу посмотреть как делаются сайты? Например сам язык я выучу, но как правильно писать на нем сайты я не знаю.
|
|
| |
afq | Дата: Понедельник, 27 Августа 2018, 10:20 | Сообщение # 719 | Тема: Утилита для увеличения изображения |
Разработчик
Сейчас нет на сайте
| martuk, ну и правильно. Вот даже одна из причин почему не стоит пользоваться windows, оказывается что даже у windows 10 есть свои версии, и у этих версий свой срок жизни. То есть купив один раз windows 10, придётся купить потом ещё раз её же. Добавлено (27 Августа 2018, 10:33) --------------------------------------------- martuk, а что мне в линуксе больше всего нравиться чем в windows, так это консоль, терминал.
|
|
| |
afq | Дата: Понедельник, 27 Августа 2018, 09:09 | Сообщение # 720 | Тема: Утилита для увеличения изображения |
Разработчик
Сейчас нет на сайте
| drcrack,
Цитата В чем преимущества перед imagemagick? Незнаю. Я ещё сделал нарезку картинок, тоже на github оставил. Visual Studio есть для линукс, только он не такой как для windows, а windows версию не пробывал устанавливать. Да vim использую. Вот сделал себе аватара, только надо сделать другого, как будто пишет что-то на клаве. Сделал в рисунке на 45x45, и увеличил на 4, потом разрезал spritesheet на отдельные рисунки и сконвертировал в gif Код convert *.png avatar.gif .
|
|
| |
|