Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2013, 18:51   #1
ser70
Форумчанин
 
Аватар для ser70
 
Регистрация: 02.10.2009
Сообщений: 255
По умолчанию Создание полоски "нитро"

Я хочу создать игру.
Создал отрисовку объекта и трассы.
При нажатии на кнопку W объект должен ускорться.
Решил реализовать полоску "нитро", но никак не пойму как.
Она должна распологать в левом нижнем углу.
Я думаю, что нужно создать новую ортографическую проекцию в перспективной, но так и не получилась. Может кто-нибудь поделится опытом??? Используется библиотека OpenGL.
"Реальность воображаема, а воображаемое - реально" В. Соло
ser70 вне форума Ответить с цитированием
Старый 19.12.2013, 16:04   #2
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

А почему бы не так? (XNA)
Код:
spriteBatch.Begin(...);
spriteBatch.Draw(...); //world
spriteBatch.End();
spriteBatch.Begin(...);
spriteBatch.Draw(...); //UI
spriteBatch.End();
dampirik вне форума Ответить с цитированием
Старый 19.12.2013, 19:38   #3
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

http://masandilov.ru/opengl/masking-ortho
Почитайте статейку про прицел. В трех словах, достигается это путем смены проекции с помощью glOrtho. и рисованием уже с помощью glVertex2f(Но не в OpenGL 3,4!). Проблема, с которой в будущем Вы можете столкнуться - это непропорциональное растяжение полоски в зависимости от разрешения монитора. Предположим он широкоформатный, тогда полоса будет занимать много места. Если проблема имеет место, то рассмотрите функцию Reshape в этом коде.
Код:
void Reshape(int width,int height)
{
   /* Высота 1.0  - это 768 пикселей, если высота монитора больше, следовательно, вещественное значение должно быть больше.*/
  
     XScreen=(double)width/(double)768; 
     YScreen=(double)height/(double)768;

     glViewport(0,0,width,height);
     glMatrixMode(GL_PROJECTION);
     glLoadIdentity();
     gluOrtho2D(-XScreen,XScreen,-YScreen,YScreen);
     glMatrixMode(GL_MODELVIEW);
     glLoadIdentity();
}
Цитата:
А почему бы не так? (XNA)
Потому что XNA уже не разрабатывается. Эта штука не кроссплатформенная и ее нужно за собой тащить.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 19.12.2013 в 19:42.
_PROGRAMM_ вне форума Ответить с цитированием
Старый 20.12.2013, 10:49   #4
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

_PROGRAMM_
Окей, monogame.
dampirik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Постоянно слетает галочка "автоматически" в "Параметры Excel", "Формулы", "Вычисления в книге" Alexsandrr Microsoft Office Excel 4 19.10.2013 14:22
"Копирование частей pngimage в pngimage" или "Создание своей всеразмерной и прозрачной кнопки" alextrof94 Общие вопросы Delphi 1 15.04.2013 22:19
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") funnyy Помощь студентам 3 17.10.2012 17:40
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04