Навигация
Поддержать материально
Steam Greenlight

Логотипы
Медальки
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Темы форума
187 - ?
30.10.2024
 Mefistofel
Galactic Showdown -…
21.10.2024
 KregHek
Новый IGDC
5.08.2024
 rimush
186 - Strategy!
15.07.2024
 VoroneTZ
WoL
3.07.2024
 Darthman
Привет выжившие
21.05.2024
 GeePee
185 - RPG
9.02.2024
 Vaskrol
В каком банке открыт…
24.01.2024
 Darthman
185 - ?
30.12.2023
 Mefistofel
TESTAMENT - Тактичес…
15.11.2023
 KregHek
Сейчас на сайте
Гостей: 42
На сайте нет зарегистрированных пользователей

Пользователей: 1,790
новичок: Durved
Обсуждение «Free fall от KeeperKira»
Страница 1 из 2 1 2 >
KeeperKira
Avatar пользователя

Опубликовано 01.10.2016 10:50 (8 лет назад)    #
День #1

Всё началось этим осенним морозным утром. Когда я зашел на сайт и увидел сообщение о начале нового конкурса. И тут-же начал писать сообщение о своих планах. И полный энтузиазма в предвкушении долгой кропотливой работы над адоптацией своих наработок в мир кросплатформа начал строить планы на текущий день.

Но не успел я дописать свое сообщение, как в комнату зашел брат и сообщил что ему нужна помощь в установке новых ворот в гараж. Ивот так мне пришлось отложить работу по адаптации((.

Сейчас пишу это сообщение уже после 5часов работ на улице. Ноги продрогли. Мезинец на правой руке от холода не придвегается к остальным. Всем своим видом говоря"идите нафиг я сваливаю".

Но всё это меня не останавливало, будучи полным энтузиазма я побежал на кухню сделать горячего кофе. И приняться за работу. Как увидел кусок рыбы, который я вчера достал из морозилк дабы приготовить недавно увиденный в инете рецепт "Рыба в медово-лимонном маринаде". И понял что приступить к работе мне сразу опять таки не получиться.

Сейчас допишу сообщение и пойду помещю рыбу в маринад. После этого у меня будет минут 30 пока она маринуется. может чего сделаю. посмотрим)))
KeeperKira
Avatar пользователя

Опубликовано 01.10.2016 11:13 (8 лет назад)    #
ах да
вот рецепт рыбы)))
KeeperKira
Avatar пользователя

Опубликовано 01.10.2016 15:30 (8 лет назад)    #
Итак, подводя итоги уже почти минувшего дня. Что я смог сделать.
Установил Code::Block версии 16.01
Надо отметить что это вынужденная мера. связанная с тем что я перешел от релиза 14.04 к 16.04 Ubuntu.
Перейдя на новый релиз прежняя версия КД постоянно зависала при попытке захода в меню программы.
На новой версии этого не наблюдается. но по живём увидим.
также хочу отметить что через стандартную установку убунты ставится именно та самая глюченная версия поэтому нужно устанавливать через терминал, предварительно добавив репозиторий.
А именно
# add-apt-repository ppa:damien-moore/codeblocks-stable
# apt-get update
# apt install codeblock
# codeblocks

Далее попытался установить GLUT. натолкнулся на ряд проблем с компиляцией либ под линукс. в итоге не смог осилить эти make файлы. но наткнулся на форуме на одно полезное замечание что glut давно мёртв и следует использовать FreeGLUT так и поступил. всё встало как родное. парой команд.
apt-get install freeglut3 freeglut3-dev

Затем поставил glew. Честно признаюсь показалось что он у меня уже стоит. в любом случае делается это прям из менеджера приложений.
Позже долго и мучительно настраивал КД под себя.( стандартный белый фон не устраивал вовсе)
Закончив с мучениями нашел простейший пример OpenGl и скопировал его в новый проект. и тут-же натолкнулся на неприятнейший эффект. при русской раскладке не работают горячие клавиши. Если кто сталкивался с такой проблемой подскажите как решали.

Но в итоге код вставил
#include <GL/glut.h>
#include <iostream>

using namespace std;

void draw(void) {

// Black background
glClearColor(0.0f,0.0f,0.0f,1.0f);
glClear(GL_COLOR_BUFFER_BIT);
//Draw i
glFlush();

}
//Main program
int main(int argc, char **argv) {

glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA|GLUT_SINGLE);

glutInitWindowPosition(50, 25);

glutInitWindowSize(480,480);

glutCreateWindow("Hello OpenGL");

glutDisplayFunc(draw);

glutMainLoop();
return 0;
}

для запуска данного кода нужно подключить две либы. -lGL -lglut
как выяснилось сделать это можно project->Build option->Linker settings

в результате всё запустилось!!!!!! УРА аплодисменты зановес.
KeeperKira
Avatar пользователя

Опубликовано 01.10.2016 15:36 (8 лет назад)    #
немного отойдя от разработки хочу сказать о самих сообщениях которые я буду выкладывать. как могли заметить они будут нести как и простые размышления так и иметь конкретные инструкции по работе. прошлый коммет можно назвать "запуск OpenGL под Linux"
надеюсь все мои посты будут иметь как развлекательный так и образовательный характер. В надежде в последствии обеденить это всё в цикл статей и выложить гденибуть на хабре или иных ресурсах.

Также жду ваших комментариевЭ, конструктивной критики, советов. можно прям здесь в теме.
Kaps
Avatar пользователя

Опубликовано 02.10.2016 14:07 (8 лет назад)    #
Мне кажется лучше стоит больше рассказать о самом проекте, что он из себя будет представлять, а не каким образом он будет компилироваться.
ProSergeant
Avatar пользователя

Опубликовано 02.10.2016 14:19 (8 лет назад)    #
c клавишами по пробуй что то типа такого:
if(key_press("W") || key_press("Ц") ) 
{
position.z += direction.z * deltaTime * speed;
position.x += direction.x * deltaTime * speed;
}
KeeperKira
Avatar пользователя

Опубликовано 02.10.2016 15:01 (8 лет назад)    #
Kaps написал:
Мне кажется лучше стоит больше рассказать о самом проекте, что он из себя будет представлять, а не каким образом он будет компилироваться.


Пожалуй ты прав, позже опишу больше суть и саму идею проекта. но описние самих действий тоже ниикуда не денутся.

ProSergeant написал:
c клавишами по пробуй что то типа такого:
if(key_press("W") || key_press("Ц") ) 
{
position.z += direction.z * deltaTime * speed;
position.x += direction.x * deltaTime * speed;
}


Не так меня понял. Проблема раскладки не в моём проекте ,а в самом Code::Block под Linux.
KeeperKira
Avatar пользователя

Опубликовано 03.10.2016 14:38 (8 лет назад)    #
И так, День 3#

Весь день будучи на работе не как из головы не шли мысли о том как же описать суть всего проекта, более подробно и конструктивно.

Но как и всега в голову приходят не те мысли что нужны но это не делает их менее достойными.
И вот что я надумал. Ранее процесс создания статей предполагался по схеме.
Поставил цель-Нашел инфу->Прочел ->Проверил->Подправил->Оформил пост->получил комментарии->Подправил по необходимости от комментариев.

Теперь буду действовать иначе.

поставил цель-> описал её на форуме->получил напутствия(типа использую для этого такуюто либу и тд.)->проверил->оформил результат->получил коммент->подправил->далее пункт 1

Это поможет мне сократить поиски полезной информации по теме. Также сделать вас более причастными к моему проекту. Что будет соответствовать требованию конкурса. Мотивировать других.

О как))

а о сути проекта чуть позже))
KeeperKira
Avatar пользователя

Опубликовано 04.10.2016 05:23 (8 лет назад)    #
День 4#

тем временем слегка отлынил от работы и поигрался с OpenGL

настряпал небольшой код. который в последствии хочу перенести на GLSL.
выглядит примерно так
KeeperKira
Avatar пользователя

Опубликовано 04.10.2016 05:36 (8 лет назад)    #
ну и сам код сего чуда

#include <cmath>
#include <GL/glut.h>
#define WIDTH 800
#define HEIGHT 640

using namespace std;

//рисование точки с координатами (x, y) передаваемым в функцию цветом(RGB)
void draw_dot ( int x, int y, float *clr ) {
glColor4f (clr[0], clr[1], clr[2],1); //цвет рисования
glVertex2i ( x, y );
}

void draw_biomorph () {
static float time=0;
float f,d ;

time+=0.5;
float clr_black[] = { 0, 0, 0 }, new_clr[3];

glClear ( GL_COLOR_BUFFER_BIT );//очищаем буфер
glBegin ( GL_POINTS );//начинаем отрисовку

//пробегаем все пиксели
for ( int x = 0; x < WIDTH ; x++ )
for ( int y = 0; y < HEIGHT ; y++ )
{
float px,py,a;

px = (((float)x/WIDTH)*2-1);//преобразуем координаты к виду [-1;1]
py = (((float)y/HEIGHT)*2-1);//преобразуем координаты к виду [-1;1]

//создаём искажение в форме клевера и рябь на ней
a = 2.0*atan(py/px);
px/=0.5 + 0.02 * sin(5.0 * a - time * 16.0)*cos(50/a);
py/=0.5 + 0.02 * sin(5.0 * a - time * 16.0)*cos(50/a);
px*=1.0/sin(a) ;
py*=1.0/sin(a) ;

f = 1.40 + 0.2 * cos(time * 0.14);// добавляем уменьшение/увеличение дугии

float lenght = (float)sqrt(px*px+py*py);
d = (abs(lenght-f)*(abs(sin(time/10))*10.0+2));// добавляем колебание толщины дугии

//добовляем новый вертекс.
new_clr[0]=0./d;
new_clr[1]=0.2/d;
new_clr[2]=2.22/d;
draw_dot ( x, y, new_clr );

}
glEnd ();
glutSwapBuffers();
}

void init () {
glClearColor ( 0.0, 0.0, 0.0, 0.0 ); //цвет фона(RGBA, чёрный)
glPointSize ( 1.0 );
glMatrixMode ( GL_PROJECTION ); //матрица проекций
glLoadIdentity (); //замена текущей матрицы на единичную
gluOrtho2D ( 0, WIDTH,HEIGHT, 0);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}

int main ( int argc, char** argv ) {
glutInit ( &argc, argv ); //инициализация OpenGL Utility Toolkit
//режим окна(одиночный буфер и RGB-палитра)
glutInitDisplayMode ( GLUT_DOUBLE | GLUT_RGBA |GLUT_ALPHA );
//установка размеров окна(ширина и высота в пикселях)
glutInitWindowSize ( WIDTH, HEIGHT );
//положение окна относительно левого верхнего угла экрана
glutInitWindowPosition (500, 300);
//создание окна c заголовком Biomorph
glutCreateWindow ("Biomorph");
//инициализация функции, отвечающей за рисование в окне
glutDisplayFunc ( draw_biomorph );
init (); // дополнительные параметры
glutIdleFunc(draw_biomorph);
glutMainLoop (); //вход в главный цикл
return 0;
}

редакция от KeeperKira, 04.10.2016 06:13

KeeperKira
Avatar пользователя

Опубликовано 04.10.2016 05:45 (8 лет назад)    #
тем кому лень компилироваь вот версия под Linux.

Под винду сделаю позже.
biomorph.zip [ 456 ]

редакция от KeeperKira, 04.10.2016 05:46

KeeperKira
Avatar пользователя

Опубликовано 04.10.2016 05:50 (8 лет назад)    #
Задачка для любителей головоломок.

Как сменить форму клевера на сердце?)))
rip
Avatar пользователя

Опубликовано 04.10.2016 07:20 (8 лет назад)    #
KeeperKira написал:
Задачка для любителей головоломок.

Как сменить форму клевера на сердце?)))


Надо заменить 4 на 1.
KeeperKira
Avatar пользователя

Опубликовано 04.10.2016 07:28 (8 лет назад)    #
rip написал:
KeeperKira написал:
Задачка для любителей головоломок.

Как сменить форму клевера на сердце?)))


Надо заменить 4 на 1.


тут не используются эпициклоиды
Dan
Avatar пользователя

Опубликовано 04.10.2016 07:44 (8 лет назад)    #
KeeperKira написал:
Задачка для любителей головоломок.

Как сменить форму клевера на сердце?)))


смени систему координат по Y с [-1, 1] на [0, 1]
KeeperKira
Avatar пользователя

Опубликовано 04.10.2016 07:56 (8 лет назад)    #
Dan написал:

смени систему координат по Y с [-1, 1] на [0, 1]


получилось вот так
KeeperKira
Avatar пользователя

Опубликовано 04.10.2016 07:57 (8 лет назад)    #
наверно хотел сказать сменить на -1;0

но и это не предел совершенства.

редакция от KeeperKira, 04.10.2016 07:58

KeeperKira
Avatar пользователя

Опубликовано 04.10.2016 08:03 (8 лет назад)    #
скомпирлировал вод винду.
И тутже заметил проблему, под виндой программа заметно тормозит в то время как на линуксе работает отлично. Надеюсь проблема в версии драйверов под виндой. но может быть всё гораздо хуже.

Проверяйте как работает в живую
release.zip [ 443 ]

редакция от KeeperKira, 04.10.2016 09:12

Daemon
Avatar пользователя

Опубликовано 04.10.2016 08:14 (8 лет назад)    #
---------------------------
biomorph.exe - Системная ошибка
---------------------------
Запуск программы невозможен, так как на компьютере отсутствует libgcc_s_dw2-1.dll. Попробуйте переустановить программу.
---------------------------
ОК
---------------------------
KeeperKira
Avatar пользователя

Опубликовано 04.10.2016 09:13 (8 лет назад)    #
Перезалил новую версию, скомпилированную в MSVC должно работать без либ. проверьте
Страница 1 из 2 1 2 >
Перейти на форум:
Конкурсы
Открытые конкурсы:
Активных нет
Недавние конкурсы:
 186 - Strategy
 185 - RPG XII
 184 - Arcade II
 183 - Novel
 182 - RPG XI
 Все конкурсы
Случайная игра
Мини-чат
Вам необходимо залогиниться.

Архив чата

26,158,542 уникальных посетителей

Создано на базе русской версии PHP-Fusion copyright © 2003-2006 by Nick Jones.
Released as free software under the terms of the GNU/GPL license.