Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 5
Всего онлайн: 5
Зарегистрировано юзеров: 6822
Комментариев на сайте: 651
Новый юзер: MaritaTyday



Последние комментарии
c
Rodneyhef прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
Zauważże, czym cechują się kredyty na sześcdziesięciu dni. Jako co zwrócić uwagę podczas asortymentu oferty? Które firmy użyczają chwilówek za taki czas? Sprawdź! [url=https://chwilowki-pozyczka.pl/]chwilówki[/url] [url=https://chwilowki-pozyczka.pl/chwilowki-online]chwilówki online[/url] [url=https://chwilowki-pozyczka.pl/pozyczki-na-raty]pożyczki ratalne[/url] [url=https://chwilowki-pozyczka.pl/kredyty-gotowkowe]kredyty gotówkowe[/url] Zdecydowana większość pożyczek krótkoterminowych udzielana jest od okres nie zaakceptować dłuższy niźli dwa miesiące. Krótki słowo spłaty wydaje się być charakterystyczny na rzecz tego rodzaju wytworów finansowych. Firmy pożyczkowe wprowadziły także zastrzeżenia, skutkujące tym, że nie każdy klient będzie mógł momentalnie zaciągnąć wzięcie pożyczki na 60 dni. W poniższym artykule podpowiadamy, na jak zwrócić uwagę, postanawiając się pod ten typ dofinansowania, na czym polegają opisane ograniczenia, oraz pokazujemy, które obecne na rynku firmy użyczają pożyczek dzięki 60 dni. chwilowki-pozyczka.pl Termin kredyty jest jednym z kluczowych składników mających bezpośredni wpływ jako całkowite koszty zobowiązania. Alternatywa krótszego czy dłuższego sezonu ma przełożenie na wysokość RRSO, innymi słowy rzeczywistej rocznej stopy oprocentowanie informującej nas w stosunku procentowym o kosztach związanych z pożyczką. Jest to pierwszy element, na który trzeba zwrócić szczególną uwagę w chwili wyboru możliwości. Drugim elementem jest uważna ocena spersonalizowanych możliwości kredytowych, co koniecznie musi towarzyszyć zaciąganiu jakiegokolwiek zobowiązania. Być może będziemy potrzebować produktu finansowego, którego spłata wydaje się znacznie dłuższa. Wówczas winniśmy zdecydować się jako pożyczki od raty. Warto również stwierdzić o aplikowanych przez spółki pożyczkowe ograniczeniach, wynikających spośród realizacji strategii ryzyka. Ochraniając się zanim niewypłacalnością pożyczkobiorców, instytucje finansowe przedłożyły szereg wielu ograniczeń, oddanych w szczególności dla osób nowych odbiorców. Ci pożyczkobiorcy, którzy zaciągają chwilówkę na raz 1 w podanej firmie, niejednokrotnie nie mogą liczyć na termin dłuższy niźli 30 dni. Poza tym wiążą ograniczenia szczególne dla kredytów krótkoterminowych. Przemówienie między innymi na temat weryfikacji petentów w charakteryzujących się ogromną popularnością rejestrach dłużników, ukończenie 21. roku egzystencji czy identyfikacja maksymalnej poziomie pożyczki. Pożądane byłoby podkreślić, hdy znaczna część przedsiębiorstw nie udziela pożyczek o dłuższym okresie w ogóle, co ponadto nie jest rezultatem wprowadzenia ograniczeń, a wynika po prostu wraz z oferty.
dealrattKi прокомментировал "Урок 3 - Конструкция IF...THEN...ELSE":
Это действительно радует меня. --- Бесподобное сообщение скачать fifa, скачать фифа а также [url=http://15fifa.ru/novosti-fifa-15]fifa 15 последние новости[/url] скачать фифа

Урок 8 - Игровая камера

  В этом уроке я опишу, как сделать игровую камеру, т. е. камера, управляемая при помощи мышки и клавиатуры. Можно будет смотреть во все стороны и передвигаться.

Разбираем код программы:
В раздел Var заносим переменные:

MouseMove1: boolean;
  TempX1,TempY1,SingX,SingY,TempX2,TempY2 : integer;
  Point: Tpoint;
  Camera: TCamera;
В процедуре FormPaint:
try                                                      
if MouseMove1=false then                                 
begin                                                    
GetCursorPos(Point);                                     
TempX1:=point.X;                                         
TempY1:=point.Y;                                         
MouseMove1:=true;                                        
end;                                                     
finally                                                  
                                                         
SetCursorPos(screen.Width div 2,screen.Height div 2); //Центруем курсор
GetCursorPos(Point) ;  //получаем координаты и записываем их в переменную Point
 if MouseMove1=true then                                               
  begin                                                  
TempX2:=point.X;                                         
TempY2:=point.Y;                                         
SingX:=TempX1-TempX2;                                    
SingY:=TempY1-TempY2;                                    
if  (Camera.phiY<=90) and (Camera.phiY>=-90) then        
 begin                                                   
 Camera.phiY:=Camera.phiY+(-SingY/8);                    
 end                                                     
 else                                                    
 begin                                                   
   if Camera.phiY>=90 then  //Ограничения           
  Camera.phiY:=90;          //На 
  if Camera.phiY<=-90 then  //Угол обзора 
  Camera.phiY:=-90;         //По вертикали
  end;                                                 
Camera.phiX:=Camera.phiX+(-SingX/4);                     
TempX1:=0;                                               
TempY1:=0;                                               
TempX2:=0;                                               
TempY2:=0;                                               
SingX:=0;                                                
SingY:=0;                                                
MouseMove1:=false;                                       
 end;                                                    
end;                 

Конструкция try finally здесь обязательна т.к. сначала надо получить координаты курсора и только после этого позволить ему сместится и опять засечь его координаты.

Переменные TempX1 и TempY1 – координаты до смещения.
Переменные TempX2 и TempY2 – координаты после смещения.
Переменные SingX и SingY – разница между предыдущими и новыми координатами.

Для работы кода необходимо создать 2 составных типа переменных:
type

   TVector = record  //Вектор
   X,Y,Z:GLfloat;
   end;


   TCamera = record
   Pos: Tvector;       //Позиция камеры
   PhiY: single;         //вертикальный улол поворота камеры
   PhiX: single;         //горизонтальный
   Speed: glFloat;   //Скорость камеры
   end;
Коэффициенты смещения по горизонтали и вертикали делятся на 4 и 8 – это чувствительность мыши.

Мы будем поворачивать и двигать не камеру а МИР вокруг камеры. Самыми простыми функциями glRotatef и glTranslatef
ВАЖНО: Эти функции нужно вызывать в особом порядке!!!

Сначала повернем мир по вертикале, а потом по горизонтали и совершим перемещение.
glRotatef(-Camera.PhiY-90,1,0,0); //поворот по вертикали
glRotatef(-Camera.PhiX,0,0,1);     //поворот по горизонтали
glTranslatef(-Camera.Pos.X,-Camera.Pos.Y,-Camera.Pos.Z);  //смешение мира
Это нужно делать до отрисовки сцены, позиции источников света тоже надо задавать после. Теперь надо сделать обработку клавиатуры.

В раздел Const:
VK_W = $57;
VK_S = $53;
VK_D = $44;
VK_A = $41;
VK_SHIFT = $10;
VK_SPACE = $20;
В процедуре FormPaint после обработки мыши:
if (GetAsyncKeyState(VK_W)<>0) or (GetAsyncKeyState(VK_S)<>0) or
    (GetAsyncKeyState(VK_D)<>0) or (GetAsyncKeyState(VK_A)<>0)  then
  begin
   Camera.Speed:=0.005;

if (GetAsyncKeyState(VK_W)<>0) then
   begin
    Camera.Pos.X:=Camera.Pos.X+Camera.Speed*cos((Camera.phiX+90)*Pi/180);
    Camera.Pos.Y:=Camera.Pos.Y+Camera.Speed*sin((Camera.phiX+90)*Pi/180);
   end;
     //Назад
   if (GetAsyncKeyState(VK_S)<>0) then
   begin
    Camera.Pos.X:=Camera.Pos.X+Camera.Speed*cos((Camera.phiX-90)*Pi/180);
    Camera.Pos.Y:=Camera.Pos.Y+Camera.Speed*sin((Camera.phiX-90)*Pi/180);
   end;
     //Вправо
   if (GetAsyncKeyState(VK_D)<>0) then
   begin
    Camera.Pos.X:=Camera.Pos.X+Camera.Speed*cos((Camera.phiX)*Pi/180);
    Camera.Pos.Y:=Camera.Pos.Y+Camera.Speed*sin((Camera.phiX)*Pi/180);
   end;
     //Влево
   if (GetAsyncKeyState(VK_A)<>0) then
   begin
    Camera.Pos.X:=Camera.Pos.X+Camera.Speed*cos((Camera.phiX+180)*Pi/180);
    Camera.Pos.Y:=Camera.Pos.Y+Camera.Speed*sin((Camera.phiX+180)*Pi/180);
   end;
  end;
//Вниз
  if (GetAsyncKeyState(VK_SHIFT)<>0) then   Camera.Pos.Z:=Camera.Pos.Z-0.005;
//Вверх
  if (GetAsyncKeyState(VK_SPACE)<>0) then   Camera.Pos.Z:=Camera.Pos.Z+0.005;
Функция GetAsyncKeyState(индекс) отслеживает нажатия клавиш в системе независимо статуса активности приложения.

Управление:

W – Вперёд
S – Назад
A – Влево
D – Вправо
Shift – Вниз
Space – Вверх

И нарисуем сцену:
glBindTexture(GL_TEXTURE_2D,Glass);
RenderBox; //куб

glBindTexture(GL_TEXTURE_2D,Eart);
glBegin(GL_QUADS);
glNormal(0.5,0.5,1);
glTexCoord(0,1); glVertex3f(-10,10,-1.1);
glTexCoord(1,1); glVertex3f(10,10,-1.1);
glTexCoord(1,0); glVertex3f(10,-10,-1.1);
glTexCoord(0,0); glVertex3f(-10,-10,-1.1);
glEnd;
В этом примере появилась новая функция задания перспективы:
gluPerspective(Угол обзора, ClientWidth/ClientHeight,ближайшая точка, дальняя точка);



Осталось только сделать в ObjectIspector параметр Form1.BorderStyle = none и WindowState = maximize. Всё простенькая игра готова.

Зарегистрируйтесь или авторизуйтесь, чтобы скачать.


Источник: www.thedelphi.ru
Автор: Клящицкий Виталий
Опубликовано: 14 Июля 2012
Просмотров: 19943

Урок 7 - Туман Урок 9 - Экспорт .3DS модели из 3DS max 2009 в OpenGL

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил: oktavius [Новичок] Дата: 2012-11-21
А как загрузить карту с 3dMax?




аватар Добавил: Klesh [Программист] Дата: 2012-11-21
Окей, в ближайшее время будет опубликован урок по экспорту модели в формате 3DS из 3ds max.




аватар Добавил: oktavius [Новичок] Дата: 2012-11-22
Отлично буду очень рад)




аватар Добавил: juzhnij [Новичок] Дата: 2013-05-20
У меня возникла проблема с которой я никак не могу справиться - когда я разворачиваюсь в виртуальном пространстве все текстуры начинают просвечиваться насквозь, мне набо накладывать на те же координаты текстуры в обратную сторону или есть проще решение?




аватар Добавил: juzhnij [Новичок] Дата: 2013-05-20
Ну и плюс к этому в движении иногда текстура на текстуру в какой то части накладывается, как будто они по многу раз за кадр прорисовываются.




аватар Добавил: juzhnij [Новичок] Дата: 2013-05-22
Спасибо за неучастие, проблему решил самостоятельно.




аватар Добавил(а): evgen8195 [Новичок] Дата: 2014-05-12
Вопрос: как сделать так чтобы отображался и двигался(!) курсор мыши?




аватар Добавил(а): mrcheat [Новичок] Дата: 2019-02-16
ЧЗХ: Клавиатурное управление не работает(( Чо делать?