box_button.h by Klas Wullt23rd Jul 2012 16:57
|
---|
Summary Class for buttons in darkGDK.A few reusable classes for buttons and pages. With methods for different sorts of click effects. Very simple but very reusable and user friendly. Description This darkDgk based, class allows you to create usable generic buttons Code ` This code was downloaded from The Game Creators ` It is reproduced here with full permission ` http://www.thegamecreators.com #pragma once #include "DarkGDK.h" #include "game_timer.h" // struct box_type_data { int images[10]; }; class box_button { public: game_timer G; game_timer T; int y_top; int y_down; int x_right; int x_left; bool clicked; int sprite_id; int size_x; int size_y; int off; int on; int select; int once; int state; void create(int sprite_int,int xr,int xl,int yt,int yd,int on_int,int off_int,int select_int) { sprite_id=sprite_int; y_top=yt; y_down=yd; x_right=xr; x_left=xl; off=off_int; on=on_int; select=select_int; clicked=false; state=on; size_x=x_right-x_left; size_y=y_down-y_top; dbSizeSprite(9,size_x,size_y); sprite_id=sprite_int; dbCloneSprite(9,sprite_id); T.start_clock(0); once=0; dbSetSpriteFrame(sprite_id,on); dbLoadSound ("click.wav", 1); } void update() { /* dbPrint(double(sprite_id)); dbPrint(double(x_left)); dbPrint(double(y_top)); */ int freeze=0; int test1=0; if(T.time_taken <= 20 ) {T.update();} dbPasteSprite(sprite_id,x_left,y_top); clicked=0; if(T.time_taken <= 10 && T.time_taken!=0 ) { //dbSetSpriteFrame(sprite_id,off); } dbSetSpriteFrame(sprite_id,state); if(T.time_taken==0) { if( dbMouseX()> x_left && dbMouseX()< x_right && dbMouseY()> y_top &&dbMouseY() < y_down ) { test1=1; if( test1==1 && once==0) {dbSetSpriteFrame(sprite_id,select); } if(dbMouseClick()==1) { // if(once==0){ if(T.time_taken==0 ) {T.start_clock(1);}; dbSetSpriteFrame(sprite_id,off); state=off; once=1; dbPlaySound(1); } } } }; if(test1==0 && T.time_taken>=1) { clicked=1; T.start_clock(0); once=0; dbSetSpriteFrame(sprite_id,on); state=on; }; } box_button(void) { } virtual ~box_button(void) { } }; |