[Irrlicht] Strzelanie
Ostatnio zmodyfikowano 2017-10-09 16:23
kubasuperpl Temat założony przez niniejszego użytkownika |
[Irrlicht] Strzelanie » 2017-10-08 16:13:44 Witam. Otóż mam pytanie: Jak zrobić strzelanie w Irrlichtu, takie że jak nacisnę Lewy Shift to wystrzeliwuję pocisk? Z góry dzięki za pomoc. |
|
SeaMonster131 |
» 2017-10-08 17:25:35 A co udało Ci się już zrobić? Pokaż kod to spróbujemy Ci pomóc, bo całość będzie wyglądać podobnie do if( lewyShift ) stworzPocisk();
updatePociskow();
|
|
kubasuperpl Temat założony przez niniejszego użytkownika |
» 2017-10-09 14:10:26 Kod źródłowy: #include <iostream> #include <irrlicht/irrlicht.h> using namespace std; using namespace irr; class MyEventReceiver : public IEventReceiver { public: virtual bool OnEvent( const SEvent & event ) { if( event.EventType == irr::EET_KEY_INPUT_EVENT ) KeyIsDown[ event.KeyInput.Key ] = event.KeyInput.PressedDown; return false; } virtual bool IsKeyDown( EKEY_CODE keyCode ) const { return KeyIsDown[ keyCode ]; } MyEventReceiver() { for( u32 i = 0; i < KEY_KEY_CODES_COUNT; ++i ) KeyIsDown[ i ] = false; } private: bool KeyIsDown[ KEY_KEY_CODES_COUNT ]; }; int main() { IrrlichtDevice * device = createDevice( video::EDT_OPENGL, core::dimension2d < u32 >( 800, 600 ) ); MyEventReceiver events; device->setEventReceiver( & events ); scene::ISceneManager * manager = device->getSceneManager(); video::IVideoDriver * driver = device->getVideoDriver(); scene::ICameraSceneNode * kam = manager->addCameraSceneNodeFPS(); device->getCursorControl()->setVisible( false ); while( device->run() ) { driver->beginScene( true, true, video::SColor( 0, 0, 100, 255 ) ); manager->drawAll(); driver->endScene(); if( events.IsKeyDown( KEY_LSHIFT ) ) { cout << "shoot!" << endl; } } return 0; }
|
|
Saran |
» 2017-10-09 16:23:09 Wygląda jak kod szkieletu programu... Aby napisać takie coś, jak chcesz, musisz mieć przynajmniej strukturę gry, czyli tę klasę od pocisków, od tego co będzie je wystrzeliwało i podobne. |
|
« 1 » |