Результаты поиска
| |
afq | Дата: Суббота, 21 Июля 2018, 14:05 | Сообщение # 721 | Тема: Объясните пожалуйста?? :) |
Разработчик
Сейчас нет на сайте
| Lenar_Asdera, а на сервере у тебя тоже будет на c# программа написана? Может ты лучше сделаешь для игры в локальной сети. Так проблем будет меньше, и можно будет играть по сети.
|
|
| |
afq | Дата: Суббота, 21 Июля 2018, 14:02 | Сообщение # 722 | Тема: воспроизведение игры в окне редактора движка |
Разработчик
Сейчас нет на сайте
| GC-Vic, martuk, DivES, а что если это не плеер, ну к примеру вот о чём подумал. Но назовём его плеером, чтобы было понятней о чём я пишу. В плеере есть такой код, получить указатель на библиотеку динамическую и выполнить код. А код проекта, если надо проверить как работает игра в игровом редакторе, то вся игра компилируется в библиотеку. Может так получиться?
|
|
| |
afq | Дата: Суббота, 21 Июля 2018, 01:49 | Сообщение # 723 | Тема: воспроизведение игры в окне редактора движка |
Разработчик
Сейчас нет на сайте
| DivES, ага, а это интересно, может так и есть в других движках. Чтож буду иметь ввиду, спасибо.
|
|
| |
afq | Дата: Суббота, 21 Июля 2018, 00:35 | Сообщение # 724 | Тема: воспроизведение игры в окне редактора движка |
Разработчик
Сейчас нет на сайте
| GC-Vic, ну моё пока ещё трудно назвать движок, но я бы хотел узнать как вообще такое делают. Как такое возможно вообще, не могу представить. Например я на qt буду делать движок. Но варианты не обязательно должны быть на qt. какие вообще способы есть?
|
|
| |
afq | Дата: Суббота, 21 Июля 2018, 00:05 | Сообщение # 725 | Тема: воспроизведение игры в окне редактора движка |
Разработчик
Сейчас нет на сайте
| Как так делают? Видел в unity, что в редакторе можно запустить проект игры и играть в самом редакторе, то же самое видел и unreal engine, как такое можно сделать, не пойму?
|
|
| |
afq | Дата: Вторник, 17 Июля 2018, 13:54 | Сообщение # 726 | Тема: Исходники игр для новичка |
Разработчик
Сейчас нет на сайте
| orkons, делал шахматы на unity3d, там человечки ходили и атаковали. Сделал правила все, кроме этого, пешка когда доходит до края доски ( нужно выбрать на какую фигуру менять пешку ). Хотел же выложить исходники, чтобы кто нибудь другой по желанию закончил проект. Но получилось так, что исходники были удалены.
|
|
| |
afq | Дата: Воскресенье, 15 Июля 2018, 23:06 | Сообщение # 727 | Тема: glDrawArrays завершает программу с ошибкой |
Разработчик
Сейчас нет на сайте
| DivES, да, y отвечает за вертикаль, x за горизонталь, чтобы в одной строке разместить две координаты x и y, нужно две строки писать. И всё это в один массив наполняется. Добавлено (15 Июля 2018, 21:11) --------------------------------------------- DivES, я знаешь что сделал, и получилось, хаха, щас увидишь, только я думал что хоть с этими функциями будет прозрачный фон, ан нет, вместо прозрачности, черный цвет.
Код vertices = new int [ 8192 ]; if ( !vertices ) { printf ( "@!@\n" ); } #if 1 for ( int y = 0, i = 0; y < height; y++ ) { for ( int x = 0; x < width; i += 2, x++ ) { vertices[ i + 0 ] = x; vertices[ i + 1 ] = y; } }
Добавлено (15 Июля 2018, 22:11) --------------------------------------------- DivES, Всё, получилось, чтобы была прозрачность, нужно дописать две функции, и вот какие.
Код glEnable ( GL_BLEND ); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
Добавлено (15 Июля 2018, 23:06) --------------------------------------------- На снимке видно, два изображения головы и квадрат с прозрачностью.
|
|
| |
afq | Дата: Воскресенье, 15 Июля 2018, 20:11 | Сообщение # 728 | Тема: glDrawArrays завершает программу с ошибкой |
Разработчик
Сейчас нет на сайте
| Вот код, здесь загружается рисунок и создаётся координаты vertex для составления квадрата, на котором каждый пиксель будет своего цвета. Я как начал использовать glColorPointer, так всегда завершается с ошибкой, что не так, вот код.
Код #include "Sprite.hpp"
Sprite::Sprite ( long pos ) { //init_texture ( ); }
Sprite::Sprite ( ) { }
void Sprite::load ( long 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" ); }
vertices = new int [ max_pixels ]; if ( !vertices ) { printf ( "@!@\n" ); } for ( int y = 0; y < 64; y++ ) { for ( int x = 0, i = 0; x < 64; i += 2, x++ ) { vertices[ 0 + ( y * ( 64 - 1 ) + i ) ] = x; vertices[ 1 + ( y * ( 64 - 1 ) + i ) ] = y; } }
std::fclose ( fd ); } void Sprite::render ( ) {
glPushMatrix ( );
#if 0 glFrontFace ( GL_CCW ); glEnable ( GL_CULL_FACE ); glCullFace ( GL_BACK ); #endif
glEnableClientState ( GL_VERTEX_ARRAY ); glEnableClientState ( GL_COLOR_ARRAY );
glVertexPointer ( 2, GL_INT, 0, vertices ); glColorPointer ( 4, GL_UNSIGNED_BYTE, 0, pixels ); // glDrawElements ( GL_POINTS, indices.length, GL_UNSIGNED_BYTE, indices.v ); glDrawArrays ( GL_POINTS, 0, 4096 );
glDisableClientState ( GL_VERTEX_ARRAY ); glDisableClientState ( GL_COLOR_ARRAY );
glDisable ( GL_CULL_FACE ); // glTranslatef ( 0, 0, -10 );
glPopMatrix ( );
glFlush ( ); } void Sprite::init_texture ( ) { }
Добавлено (15 Июля 2018, 18:37) --------------------------------------------- Отредактировал код, щас выводит изображение, но оно не такое, как на картинке. Что же не так. Может неправильно построил вершины. Ну там где
Код for ( int y = 0; y < 64; y++ ) { for ( int x = 0, i = 0; x < 64; i += 2, x++ ) { vertices[ 0 + ( y * ( 64 - 1 ) + i ) ] = x; vertices[ 1 + ( y * ( 64 - 1 ) + i ) ] = y; } }
Добавлено (15 Июля 2018, 20:11) --------------------------------------------- Выводиться какая то билиберда, только не много видны некоторые пиксели, похожие.
Сообщение отредактировал afq - Воскресенье, 15 Июля 2018, 20:10 |
|
| |
afq | Дата: Среда, 11 Июля 2018, 17:58 | Сообщение # 729 | Тема: Вывод спрайта и его прозрачность |
Разработчик
Сейчас нет на сайте
| Snake174, давай на java. Весь код? Сюда? Или на github?
|
|
| |
afq | Дата: Среда, 11 Июля 2018, 12:14 | Сообщение # 730 | Тема: Вывод спрайта и его прозрачность |
Разработчик
Сейчас нет на сайте
| Snake174, я так понел ты с gl_Begin делал, у меня так тоже с прозрачностью рисовался. Но на нетбуке тормозило если несколько рисунков надо было нарисовать, потому что пока в цикле все поинты нарисуются, пройдет время.
|
|
| |
afq | Дата: Вторник, 03 Июля 2018, 11:08 | Сообщение # 731 | Тема: Вывод спрайта и его прозрачность |
Разработчик
Сейчас нет на сайте
| Snake174, можешь снимок предоставить прозрачного спрайта?
|
|
| |
afq | Дата: Вторник, 03 Июля 2018, 08:07 | Сообщение # 732 | Тема: Вывод спрайта и его прозрачность |
Разработчик
Сейчас нет на сайте
| Snake174, я тоже раньше в int помещал все четыре цвета. А потом понел что можно по одному ( unsigned char ) для каждого цвета писать в массив, а потом за раз записать в data файл весь массив. И также прочесть одним разом без цикла. Я сегодня поменял и теперь за один раз считывает все цвета из data файла. Сначала размеры считываются, потом количество пикселей, а потом за раз требуемая длина, так лучше. Добавлено (03 Июля 2018, 08:07) --------------------------------------------- Snake174, а почему ты показываешь старый проект? Как там рисунок отображается, с прозрачностью?
|
|
| |
afq | Дата: Вторник, 03 Июля 2018, 07:12 | Сообщение # 733 | Тема: Вывод спрайта и его прозрачность |
Разработчик
Сейчас нет на сайте
| Snake174, да ты совершенно прав. Я это поменял в последний момент, подумал что в конструкторе лучше не создавать ничего, потому как если выясниться что файл отсутствует или другая ошибка, то освободить память я не смогу, потому что конструктор не выполнится до конца, а отсюда и то, что деструктор тогда не вызовется. Я init_texture перенес без задней мысли из конструктора в начало фунцкии и забыл о приоритетах, но если поместить эту функцию в конец, то будет работать, но так как я написал в начале темы, то есть без прозрачности и glOrtho.
|
|
| |
afq | Дата: Вторник, 03 Июля 2018, 06:18 | Сообщение # 734 | Тема: Вывод спрайта и его прозрачность |
Разработчик
Сейчас нет на сайте
| Никак не могу понять, можно ли сделать прозрачность спрайта без шейдеров, а то я никак не могу понять как шейдеры использовать, почему нужно то и то писать и где вся инфа по шейдерам есть, раз уж на то пошло.
Проблема вот в чем. Далее будет предоставлен код, это для 2d. Если я не устанавливаю glOrtho, то спрайт рисуется, но большого размера. Если установлю glOrtho, то рисуется только черный квадрат. Ещё была функция какая то, уже не помню как называется, он ещё двигается с помощью glRasterpos, она тоже рисует там где должно быть прозрачно, черным цветом. Из-за того, что не устанавливаю glortho, приходится координаты ставить в 0, 1 и тому подобное. Вот код.
Код #include "Sprite.hpp"
Sprite::Sprite ( ) { }
void Sprite::load ( long pos ) { init_texture ( ); std::FILE *fd = std::fopen ( "data", "r" ); if ( !fd ) { std::perror ( "sprite load" ); exit ( EXIT_FAILURE ); }
std::fseek ( fd, pos, SEEK_SET );
std::fread ( &width, sizeof ( unsigned int ), 1, fd ); std::fread ( &height, sizeof ( unsigned int ), 1, fd ); std::fread ( &max_pixels, sizeof ( unsigned int ), 1, fd );
pixels = new unsigned char [ max_pixels ];
// for ( int i = 0; i < max_pixels; i++ ) { std::fread ( &pixels[0] , sizeof ( unsigned char ), max_pixels, fd ); // }
#if 0 vertices = new float [ 8 ] { 0, 64, 0, 0, 64, 0, 64, 64 }; texture = new float [ 8 ] { 64, 0, 0, 0, 0, 64, 64, 64 }; #endif #if 1 vertices = new float [ 8 ] { 0, 1, 0, 0, 1, 0, 1, 1 }; texture = new float [ 8 ] { 1, 0, 0, 0, 0, 1, 1, 1 }; #endif
indices.length = 6; indices.v = new unsigned char [ indices.length ] { 0, 1, 2, 0, 2, 3 };
std::fclose ( fd ); } void Sprite::render ( ) { #if 1 glEnable ( GL_TEXTURE_2D ); glBindTexture ( GL_TEXTURE_2D, tex );
glPushMatrix ( );
#if 0 glFrontFace ( GL_CCW ); glEnable ( GL_CULL_FACE ); glCullFace ( GL_BACK ); #endif
glEnableClientState ( GL_VERTEX_ARRAY ); glEnableClientState ( GL_TEXTURE_COORD_ARRAY );
glVertexPointer ( 2, GL_FLOAT, 0, vertices ); glTexCoordPointer ( 2, GL_FLOAT, 0, texture ); glDrawElements ( GL_TRIANGLES, indices.length, GL_UNSIGNED_BYTE, indices.v );
glDisableClientState ( GL_VERTEX_ARRAY ); glDisableClientState ( GL_TEXTURE_COORD_ARRAY );
glDisable ( GL_CULL_FACE ); glTranslatef ( 0, 0, 2 );
glPopMatrix ( );
glFlush ( ); glDisable ( GL_TEXTURE_2D ); #endif } void Sprite::init_texture ( ) { glGenTextures ( 1, &tex ); glBindTexture ( GL_TEXTURE_2D, tex );
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 );
glTexImage2D ( GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels );
glEnable ( GL_TEXTURE_2D );
}
|
|
| |
afq | Дата: Вторник, 26 Июня 2018, 19:17 | Сообщение # 735 | Тема: Композитор, друг, зайди на минутку:) |
Разработчик
Сейчас нет на сайте
| Kzunec, как так рисовать научиться, хотя бы похоже на это?
|
|
| |
afq | Дата: Вторник, 26 Июня 2018, 13:11 | Сообщение # 736 | Тема: [3D] Ранний доступ Fated Kingdom - [цифровая настольная игр] |
Разработчик
Сейчас нет на сайте
| drcrack, а что разве unity для windows на dx? Разве не всё на opengl? Откуда тебе знать что они использовали для разработки, шейдеры или либы? Добавлено (26 Июня 2018, 13:11) --------------------------------------------- drcrack, у него же в проекте написано, что api opengl, ты явно гонишь.
|
|
| |
afq | Дата: Вторник, 26 Июня 2018, 12:02 | Сообщение # 737 | Тема: [3D] Ранний доступ Fated Kingdom - [цифровая настольная игр] |
Разработчик
Сейчас нет на сайте
| drcrack, так движок unity3d, чё там адаптировать? Добавлено (26 Июня 2018, 12:02) --------------------------------------------- GameLiberty, видел обзор одного пользователя, и он вроде бы пишет что нет серверов онлайн, они будут или пользователь сам создаёт сервер, но тогда вроде всё равно должен быть сервер внешний, не пользовательский.
|
|
| |
afq | Дата: Суббота, 23 Июня 2018, 23:51 | Сообщение # 738 | Тема: [3D] Ранний доступ Fated Kingdom - [цифровая настольная игр] |
Разработчик
Сейчас нет на сайте
| GameLiberty, а почему только для windows? Unity же для windows, linux, macos.
|
|
| |
afq | Дата: Понедельник, 18 Июня 2018, 06:48 | Сообщение # 739 | Тема: Посчитать хеш |
Разработчик
Сейчас нет на сайте
| drcrack, если файлы будут небольших размеров, то можно один раз функцией считать размер файла, и указатель установить на середину буфера, и передать этот указатель в поточную функцию. Не помню как точно, но на поток тоже нужно время, чтобы его создать. А так, в двух потока можно будет быстрее буфер обработать. Но надо дождаться окончания завершения потока, а так как фунции для ожидания потока нет, то либо писать так,
Код while ( thread ) continue;
либо создать процесс, тогда можно будет ожидать его waitpid. Глобальная переменная будет глобальной для двух процессов же? Я помню что при создании процесса происходит копирование при записи, что означает что данные( переменные тоже ) считаются общими, пока не произвелась запись, в таком случае произойдёт копия всех данных для процесса. И вот я не помню, пробывал или нет, останется ли глобальная переменная для двух процессов?
|
|
| |
afq | Дата: Понедельник, 18 Июня 2018, 04:22 | Сообщение # 740 | Тема: Посчитать хеш |
Разработчик
Сейчас нет на сайте
| maksim1221232, возможно время ещё занимает выделение памяти, попробуй получить размер файла, и от этого уже знать сколько нужно выделить. Так у тебя проблем не будет с любым размеров файла. Добавлено (18 Июня 2018, 04:19) --------------------------------------------- Но если размеры файлов очень большие могут быть, то циклическое считывание файла по 512 мб хватит. Добавлено (18 Июня 2018, 04:22) --------------------------------------------- falcoware, а точно нужен таймер, можно же использовать поточную функцию. Посчитал размер файла, один поток одну часть обрабатывает, другой поток другую.
|
|
| |
|