Development/Tutorials/Games/kglengine/kglengine-simpleBox: Difference between revisions

    From KDE TechBase
    No edit summary
    (update source code)
    Line 63: Line 63:
         KApplication app;
         KApplication app;


         KGLEngine2d *engine= KGLEngine2d::getInstance(); //init engine
         KGLEngine2d *engine= KGLEngine2d::instance(); //init engine
       
       


         engine->showRepere(true); //show repere line x,y
         engine->setShowAxis(true); //show repere line x,y
         engine->showFps(true);  //show fps
         engine->setShowFps(true);  //show fps
         engine->show();  //show window engine
         engine->show();  //show window engine



    Revision as of 12:53, 24 February 2009

    KGLEngine tutorial 1
    Tutorial Series   KGLEngine2d developement
    Prerequisites   None
    What's Next   Nothing at the moment
    Further Reading   KGLEngine2d's code

    Abstract

    KGLengine is a powerfull 2d games engine, for people who want to create hight level of games. Instead QGraphicsView system, KGLEngine use all power of openGL and Eigen mathematic library. Now you will be able to create fullscreen games, particles effects for make smoke or explosion, shadow effects, collision detection with a lot of items, and as soon as possible to use Shaders effects.

    Installation

    First : install eigen2 librairy. Second, be sure you have libQt4-dev, libQt4-openGL-dev, and kde4-lib devel. download KGLEngine source from svn : svn co svn://anonsvn.kde.org/home/kde/trunk/playground/games/KGLEngine

    cd kglengine mkdir build cd build cmake .. make; make install;

    First program

    1. include <KApplication>
    2. include <KAboutData>
    3. include <KCmdLineArgs>
    1. include <KGLEngine2d>
    2. include <KGLItem>


    using namespace std;


    int main(int argc, char *argv[]) {

       KAboutData aboutData("kglintro", 0,
                            ki18n("tutorial1"), "1.0",
                            ki18n("engine 2d"),
                            KAboutData::License_GPL,
                            ki18n("Copyright (c) 2009 Developer"));
       KCmdLineArgs::init(argc, argv, &aboutData);
       KApplication app;
    
       KGLEngine2d *engine= KGLEngine2d::instance(); //init engine
    
    
       engine->setShowAxis(true); //show repere line x,y
       engine->setShowFps(true);   //show fps
       engine->show();  //show window engine
    


       KGLItem * box = new KGLItem(QRectF(0,0,0.5,0.5));  //create an item
       box->scale(0.5); //reduce the size
       box->translate(-box->transformCenter()); //translate the box to the center
       box->rotate(M_PI/4); //rotate it with a radius = 45 deg
       box->setColor(Qt::white); //setColor! By default, it's white
       engine->addItem(box); //add item to the engine
    


        app.exec();
       
       return 0;
    

    }

    Compilation

    This is the CmakeLists.txt Files.

    project(tutorial1)

    find_package(KDE4 REQUIRED) find_package(Qt4 REQUIRED) find_package(OpenGL REQUIRED) find_package(Eigen2 REQUIRED)

    include(KDE4Defaults)

    include_directories(${KDE4_INCLUDES}) include_directories(${QT_QTOPENGL_INCLUDE_DIR}) include_directories(${X11_Xrandr_INCLUDE_PATH}) include_directories(${CMAKE_CURRENT_SOURCE_DIR}) include_directories(${EIGEN2_INCLUDE_DIR})

    add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS})



                        1. next target ###############

    set(tutorial1_SRCS

      main.cpp 
    

    )

    kde4_add_executable(tutorial1 ${tutorial1_SRCS} )

    target_link_libraries(tutorial1 ${KDE4_KDEUI_LIBS} kglengine)

                        1. install files ###############