<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=416200&amp;view=findpost&amp;p=3813703</guid>
        <pubDate>Tue, 29 Oct 2019 13:15:08 +0000</pubDate>
        <title>Движение камеры с использованием клавиатуры</title>
        <link>https://forum.sources.ru/index.php?showtopic=416200&amp;view=findpost&amp;p=3813703</link>
        <description><![CDATA[iVovan1996: Добрый день&#33; Подскажите, как в C++ заставить камеру двигаться и переключаться от одного объекта к другому по нажатии клавиш в C++ Builder? Библиотека GLKeyboard подключена в обоих файлах, проект собрался, но почему-то клавиатуру &quot;не видит&quot;. Работаю в RAD Studio 10.3 и GLScene 1.8.<br>
<br>
CPP-файл:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#include &#60;vcl.h&#62;</div><div class="code_line">#pragma hdrstop</div><div class="code_line">&nbsp;</div><div class="code_line">#include &quot;Unit1.h&quot;</div><div class="code_line">//---------------------------------------------------------------------------</div><div class="code_line">#pragma package(smart_init)</div><div class="code_line">#pragma link &quot;GLBaseClasses&quot;</div><div class="code_line">#pragma link &quot;GLCoordinates&quot;</div><div class="code_line">#pragma link &quot;GLCrossPlatform&quot;</div><div class="code_line">#pragma link &quot;GLObjects&quot;</div><div class="code_line">#pragma link &quot;GLScene&quot;</div><div class="code_line">#pragma link &quot;GLWin32Viewer&quot;</div><div class="code_line">#pragma link &quot;GLCadencer&quot;</div><div class="code_line">#pragma link &quot;GLKeyboard&quot;</div><div class="code_line">#pragma resource &quot;*.dfm&quot;</div><div class="code_line">TForm1 *Form1;</div><div class="code_line">//---------------------------------------------------------------------------</div><div class="code_line">__fastcall TForm1::TForm1(TComponent* Owner)</div><div class="code_line">&nbsp;&nbsp; &nbsp;: TForm(Owner)</div><div class="code_line">{</div><div class="code_line">}</div><div class="code_line">//---------------------------------------------------------------------------</div><div class="code_line">void __fastcall TForm1::GoToTheCube1Click(TObject *Sender)</div><div class="code_line">{</div><div class="code_line">GLSceneViewer1-&#62;Camera=GLCamera1;</div><div class="code_line">}</div><div class="code_line">//---------------------------------------------------------------------------</div><div class="code_line">void __fastcall TForm1::GoToTheSphere1Click(TObject *Sender)</div><div class="code_line">{</div><div class="code_line">GLSceneViewer1-&#62;Camera=GLCamera2;</div><div class="code_line">}</div><div class="code_line">//---------------------------------------------------------------------------</div><div class="code_line">void __fastcall TForm1::NotFocus1Click(TObject *Sender)</div><div class="code_line">{</div><div class="code_line">GLSceneViewer1-&#62;Camera=NULL;</div><div class="code_line">}</div><div class="code_line">//---------------------------------------------------------------------------</div><div class="code_line">void __fastcall TForm1::NotFocus2Click(TObject *Sender)</div><div class="code_line">{</div><div class="code_line">GLSceneViewer1-&#62;Camera=NULL;</div><div class="code_line">}</div><div class="code_line">//---------------------------------------------------------------------------</div><div class="code_line">void __fastcall TForm1::GLCadencer1Progress(TObject *Sender, const double deltaTime,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;const double newTime)</div><div class="code_line">{</div><div class="code_line">GLCube1-&#62;Turn(deltaTime*10);</div><div class="code_line">GLSphere1-&#62;Turn(deltaTime*10);</div><div class="code_line">//Движение вперед по клавишам ‘ц’ и’ w’</div><div class="code_line">if (IsKeyDown(&#39;ц&#39;) || IsKeyDown(&#39;w&#39;)) GLSceneViewer1-&#62;Camera-&#62;Move(2* deltaTime);</div><div class="code_line">//Движение назад по клавишам ‘ы’ и ‘s’</div><div class="code_line">if (IsKeyDown(&#39;ы&#39;) || IsKeyDown(&#39;s&#39;)) GLSceneViewer1-&#62;Camera-&#62;Move(-2* deltaTime);</div><div class="code_line">//Поворот влево по клавишам ‘ф’ и’ a’</div><div class="code_line">if (IsKeyDown(&#39;ф&#39;) || IsKeyDown(&#39;a&#39;)) GLSceneViewer1-&#62;Camera-&#62;Slide(-2* deltaTime);</div><div class="code_line">//Поворот вправо по клавишам ‘в’ и ‘d’</div><div class="code_line">if (IsKeyDown(&#39;в&#39;) || IsKeyDown(&#39;d&#39;)) GLSceneViewer1-&#62;Camera-&#62;Slide(2* deltaTime);</div><div class="code_line">//Движение вверх по клавишам ‘u’ и ‘г’</div><div class="code_line">if (IsKeyDown(&#39;u&#39;) || IsKeyDown(&#39;г&#39;)) GLSceneViewer1-&#62;Camera-&#62;Lift(0.01);</div><div class="code_line">//Движение вниз по клавишам ‘n’ и ‘т’</div><div class="code_line">if (IsKeyDown(&#39;n&#39;) || IsKeyDown(&#39;т&#39;)) GLSceneViewer1-&#62;Camera-&#62;Lift(-0.01);</div><div class="code_line">if (IsKeyDown(&#39;c&#39;) || IsKeyDown(&#39;с&#39;)) GLSceneViewer1-&#62;Camera=GLCamera1;</div><div class="code_line">if (IsKeyDown(&#39;v&#39;) || IsKeyDown(&#39;м&#39;)) GLSceneViewer1-&#62;Camera=GLCamera2;</div><div class="code_line">if (IsKeyDown(&#39;b&#39;) || IsKeyDown(&#39;и&#39;)) GLSceneViewer1-&#62;Camera=NULL;</div><div class="code_line">&nbsp;</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
H-файл:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#ifndef Unit1H</div><div class="code_line">#define Unit1H</div><div class="code_line">//---------------------------------------------------------------------------</div><div class="code_line">#include &#60;System.Classes.hpp&#62;</div><div class="code_line">#include &#60;Vcl.Controls.hpp&#62;</div><div class="code_line">#include &#60;Vcl.StdCtrls.hpp&#62;</div><div class="code_line">#include &#60;Vcl.Forms.hpp&#62;</div><div class="code_line">#include &quot;GLBaseClasses.hpp&quot;</div><div class="code_line">#include &quot;GLCoordinates.hpp&quot;</div><div class="code_line">#include &quot;GLCrossPlatform.hpp&quot;</div><div class="code_line">#include &quot;GLObjects.hpp&quot;</div><div class="code_line">#include &quot;GLScene.hpp&quot;</div><div class="code_line">#include &quot;GLWin32Viewer.hpp&quot;</div><div class="code_line">#include &quot;GLKeyboard.hpp&quot;</div><div class="code_line">#include &quot;Math.hpp&quot;</div><div class="code_line">#include &#60;Vcl.Menus.hpp&#62;</div><div class="code_line">#include &quot;GLCadencer.hpp&quot;</div><div class="code_line">//---------------------------------------------------------------------------</div><div class="code_line">class TForm1 : public TForm</div><div class="code_line">{</div><div class="code_line">__published: &nbsp; &nbsp;// IDE-managed Components</div><div class="code_line">&nbsp;&nbsp; &nbsp;TGLScene *GLScene1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TGLSceneViewer *GLSceneViewer1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TGLCamera *GLCamera1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TGLCube *GLCube1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TGLSphere *GLSphere1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TGLCamera *GLCamera2;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TGLLightSource *GLLightSource1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TGLLightSource *GLLightSource2;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TMainMenu *MainMenu1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TMenuItem *Cube1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TMenuItem *Sphere1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TMenuItem *GoToTheCube1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TMenuItem *NotFocus1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TMenuItem *GoToTheSphere1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TMenuItem *NotFocus2;</div><div class="code_line">&nbsp;&nbsp; &nbsp;TGLCadencer *GLCadencer1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;void __fastcall GoToTheCube1Click(TObject *Sender);</div><div class="code_line">&nbsp;&nbsp; &nbsp;void __fastcall GoToTheSphere1Click(TObject *Sender);</div><div class="code_line">&nbsp;&nbsp; &nbsp;void __fastcall NotFocus1Click(TObject *Sender);</div><div class="code_line">&nbsp;&nbsp; &nbsp;void __fastcall NotFocus2Click(TObject *Sender);</div><div class="code_line">&nbsp;&nbsp; &nbsp;void __fastcall GLCadencer1Progress(TObject *Sender, const double deltaTime, const double newTime);</div><div class="code_line">&nbsp;</div><div class="code_line">private: &nbsp; &nbsp;// User declarations</div><div class="code_line">public: &nbsp; &nbsp; // User declarations</div><div class="code_line">&nbsp;&nbsp; &nbsp;__fastcall TForm1(TComponent* Owner);</div><div class="code_line">};</div><div class="code_line">//---------------------------------------------------------------------------</div><div class="code_line">extern PACKAGE TForm1 *Form1;</div><div class="code_line">//---------------------------------------------------------------------------</div><div class="code_line">#endif</div></ol></div></div></div></div>]]></description>
        <author>iVovan1996</author>
        <category>Программирование графики</category>
      </item>
	
      </channel>
      </rss>
	