src/proto2/Drawer.cc.disabled
author terom
Sun, 09 Nov 2008 21:51:13 +0000
changeset 25 af75a1894a32
parent 12 9b51949fdca6
permissions -rw-r--r--
simple proto *almost* works
#include <ClanLib/core.h>
#include <ClanLib/gl.h> //do I need this in linux?
#include <ClanLib/display.h>
#include <ClanLib/application.h>
#include "GameState.hh"
#include "Dimension.hh"

class CL_Game : public CL_ClanApplication {
private:
        bool keep_going;
        void check_input() {
                if(CL_Keyboard::get_keycode(CL_KEY_ESCAPE))
                        keep_going = false;
                        
        LocalPlayer& lp = gs.getLocalPlayer();

                if(CL_Keyboard::get_keycode(CL_KEY_UP)) {
                        lp.doMovement(PositionDelta(0,3));
                }
                if(CL_Keyboard::get_keycode(CL_KEY_DOWN)) {
                        lp.doMovement(PositionDelta(0,-3));
                }
                if(CL_Keyboard::get_keycode(CL_KEY_LEFT)) {
                        lp.doMovement(PositionDelta(-3,0));
                }
                if(CL_Keyboard::get_keycode(CL_KEY_RIGHT)) {
                        lp.doMovement(PositionDelta(3,0));
                }
        }

public:
        GameState gs;

        CL_Game() : keep_going(true) {}
        virtual int main(int argc, char **argv) {
                CL_SetupCore setup_init;
                CL_SetupDisplay setup_disp;
                CL_SetupGL setup_gl;
                
                //gs.player_list.push(Player(Coordinate()));

                CL_DisplayWindow win("ikkuna", 640, 480);
//              CL_Surface bg(CL_PNGProvider("image.png");

                unsigned int last_draw = CL_System::get_time();
                int r = 100, g = 100, b = 100;
                unsigned int frame_count = 0;
                bool R = false, G = false, B = false;

                while(keep_going) { //not good idea to put infinite loop
                        CL_Display::clear(CL_Color(r, g, b));
            
                        int colorIdx = 0;
                        for(std::list<Player>::iterator it = gs.player_list.begin(); it != gs.player_list.end(); ++it) {

                                CL_Display::fill_rect(CL_Rect(it->getPosition().scaledX()-10, it->getPosition().scaledY()-10, 
                                        it->getPosition().scaledX()+10, it->getPosition().scaledY()+10), CL_Color((colorIdx*30)%255, (colorIdx*30)%255, (colorIdx*30)%255));

                                colorIdx++;
                        }
                        
                        CL_Display::flip(1);
                        frame_count++;
                        unsigned int cur_draw = CL_System::get_time();
                
                        check_input();

                        last_draw = cur_draw;
                        CL_System::keep_alive();
//                      sleep(10); //flip already wait a short amount of time
                }
                return 0;
        }
};

CL_Game inst;