Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Irrlicht] Strzelanie

Ostatnio zmodyfikowano 2017-10-09 16:23
Autor Wiadomość
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.
P-165534
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
C/C++
if( lewyShift )
     stworzPocisk();

updatePociskow();
P-165537
kubasuperpl
Temat założony przez niniejszego użytkownika
» 2017-10-09 14:10:26
Kod źródłowy:
C/C++
#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;
    }
    // Sprawdza czy klawisz (klucz) został użyty
    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;
}
P-165576
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.
P-165577
« 1 »
  Strona 1 z 1