Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Dark GDK - The Game Creators - www.thegamecreators.com
- //the wizard has created a very simple project that uses Dark GDK
- //it contains the basic code for a GDK application
- //whenever using Dark GDK you must ensure you include the header file
- #include "DarkGDK.h"
- //Global
- int Block_Size=20;
- int grid[20][10];
- //colors
- const DWORD Red = dbRGB(255,0,0);
- const DWORD Green = dbRGB(0,255,0);
- const DWORD Blue = dbRGB(0,0,255);
- const DWORD Magenta = dbRGB(255,0,255);
- const DWORD Black = dbRGB(0,0,0);
- const DWORD White = dbRGB(255,255,255);
- const DWORD Yellow = dbRGB(255,255,0);
- const DWORD Cyan = dbRGB(0,255,255);
- const DWORD Orange = dbRGB(255,165,0);
- const DWORD Grey = dbRGB(177,177,177);
- //end colors
- //end global
- //Classes
- class Block {
- private:
- DWORD color;
- //int blocks[4];
- public:
- int x,y;
- Block();
- Block(int, int, DWORD);
- void draw();
- void move(int, int);
- void clear();
- //bool col();
- };
- Block::Block(){
- x = 0;
- y =0;
- color = White;
- }
- //Methods (Block)
- Block::Block(int X, int Y, DWORD COLOR)
- {
- x=X;
- y=Y;
- color=COLOR;
- }
- void Block::draw()
- {
- int x1, y1, x2, y2;
- x1=x*Block_Size;
- y1=y*Block_Size;
- x2=x1+Block_Size;
- y2=y1+Block_Size;
- // dbInk(color, Black);
- dbBox(x1,y1,x2,y2);
- }
- void Block::clear()
- {
- dbInk(Black, Black);
- //dbBox(x1,y1,x2,y2);
- draw();
- }
- void Block::move(int dx, int dy)
- {
- x=x+dx;
- y=y+dy;
- dbInk(color, Black);
- draw();
- }
- //End Method (Block)
- class Shape {
- private:
- Block blocks[4];
- //int pos[8];
- public:
- int pos[8];
- DWORD color;
- Shape();
- void make_ishape();
- void move_shape(int,int);
- void draw_shape();
- bool col();
- };
- //Methods (Shape)
- Shape::Shape() {
- blocks[0] = Block(0,0, Red);
- blocks[1] = Block(0,0, Red);
- blocks[2] = Block(0,0, Red);
- blocks[3] = Block(0,0, Red);
- }
- bool Shape::col()
- {
- for (int i=0; i<=4; i++)
- {
- if (blocks[i].y >= 19)
- {
- return false;
- }
- /*/else if (blocks[i].x >= 0 && blocks[i].x <= 9)
- {
- return false;
- }/*/
- }
- return true;
- }
- void Shape::make_ishape()
- {
- blocks[0] = Block(pos[0],pos[1],Blue);
- blocks[1] = Block(pos[2],pos[3],Blue);
- blocks[2] = Block(pos[4],pos[5],Blue);
- blocks[3] = Block(pos[6],pos[7],Blue);
- }
- void Shape::draw_shape()
- {
- for (int i=0; i<4; i++)
- {
- blocks[i].draw();
- }
- }
- void Shape::move_shape(int dx, int dy)
- {
- for (int i=0; i<4; i++)
- {
- blocks[i].clear();
- }
- for (int i=0; i<4; i++)
- {
- blocks[i].move(dx,dy);
- }
- }
- class I_Shape: public Shape{
- public:
- I_Shape(int,int);
- private:
- DWORD color;
- //int pos[8];
- };
- //Methods (I_Shape)
- I_Shape::I_Shape(int x, int y):Shape()
- {
- //make_shape(pos[8],color);
- color=Blue;
- pos[0]=x-1;
- pos[1]=y;
- pos[2]=x;
- pos[3]=y;
- pos[4]=x+1;
- pos[5]=y;
- pos[6]=x+2;
- pos[7]=y;
- //Shape(); //makes one block
- make_ishape(); //makes I_Shape
- }
- // the main entry point for the application is this function
- void DarkGDK ( void )
- {
- I_Shape First(5,0);
- // turn on sync rate and set maximum rate to 1 fps
- dbSyncOn ( );
- dbSyncRate (1);
- First.draw_shape();
- //First.move_shape(5,4);
- // our main loop
- while ( LoopGDK ( ) )
- {
- if (First.col())
- {
- if (dbLeftKey())
- {
- First.move_shape(-1,0);
- }
- else if (dbRightKey())
- {
- First.move_shape(1,0);
- }
- else if (First.col())
- {
- First.move_shape(0,1);
- }
- }
- // update the screen
- dbSync ( );
- //dbWaitKey();
- }
- // return back to windows
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement