Need help with tetris code (C2512 error)

This is being made with DarkGDK:

I am getting this error:
Error C2512: 'Shape': No appropriate default constructor available


Here is the code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
//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;
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);

//end global

//Classes

class Block {
private:
	int x,y;
	DWORD color;
public:
	Block(int, int, DWORD);
	void draw();
	void move(int, int);
	void clear();

};

//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::move(int dx, int dy)
{
	x=x+dx;
	y=y+dy;
	draw();
}
//End Method (Block)

class Shape {

private:
	Block blocks[4]
public:
	void move_shape(int,int);
	void clear_shape();
	void draw_shape();
};


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()
{
	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
}

// the main entry point for the application is this function
void DarkGDK ( void )
{
	// turn on sync rate and set maximum rate to 1 fps
	dbSyncOn   ( );
	dbSyncRate ( 1 );

	// our main loop
	while ( LoopGDK ( ) )
	{
		// update the screen
		dbSync ( );
	}

	// return back to windows
	return;
}
Last edited on
Can someone help me?
Topic archived. No new replies allowed.