From ac18b3132059b5e7d5f00ccf2b56e543cf0da84b Mon Sep 17 00:00:00 2001 From: tomsmeding Date: Tue, 1 Dec 2015 21:29:53 +0100 Subject: DAT GAME --- main.cpp | 42 +++++++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 7 deletions(-) (limited to 'main.cpp') diff --git a/main.cpp b/main.cpp index 98ea6ac..f9312bd 100644 --- a/main.cpp +++ b/main.cpp @@ -1,8 +1,12 @@ #include -#include #include +#include +#include +#include +#include "main.h" #include "object_base.h" #include "global.h" +#include "library.h" #include "build/objects.h" #include @@ -11,25 +15,49 @@ using namespace std; -Global global; - -shared_ptr objectfromname(const char *name){ +shared_ptr makeobjectbyname(int x,int y,const char *name){ -#define X(objname) if(strcmp(name,#objname)==0)return make_shared(); +#define X(objname) if(strcmp(name,#objname)==0)return make_shared(x,y); OBJECT_CLASSES_XLIST #undef X return NULL; //no object with that name } + +Global global; +Fl_Window_draw *window; + + + +Fl_Window_draw::Fl_Window_draw(int w,int h,const char *title=0):Fl_Window(w,h,title){} +Fl_Window_draw::Fl_Window_draw(int x,int y,int w,int h,const char *label=0L):Fl_Window(x,y,w,h,label){} +void Fl_Window_draw::draw(void){ + fl_rectf(0,0,w(),h(),FL_WHITE); + fl_color(FL_BLACK); + int i; + for(i=0;i<(int)global.objects.size();i++){ + global.objects[i]->draw(); + } +} + + void stepcallback(void*){ + int i; + for(i=0;i<(int)global.objects.size();i++){ + global.objects[i]->step(); + } + window->redraw(); Fl::repeat_timeout(1.0/30,stepcallback); } int main(int argc,char **argv){ - Fl_Window *window=new Fl_Window(640,480,GAME_NAME); + struct timeval tv; + gettimeofday(&tv,NULL); + srand(tv.tv_sec*1000000+tv.tv_usec); + window=new Fl_Window_draw(640,480,GAME_NAME); - global.objects.push_back(objectfromname("obj_control")); + global.objects.push_back(makeobjectbyname(0,0,"obj_control")); global.objects[0]->create(); window->end(); -- cgit v1.2.3-70-g09d2