23 bool isCollide(int a
, int b
)
46 return Point(x
+10, y
+40);
54 std::vector
<brick
> brix
;
61 return Scalar(0x00, 0xff, 0xff);
63 return Scalar(0xff, 0xff, 0x00);
65 return Scalar(0x00, 0xff, 0x00);
67 return Scalar(0xff, 0xff, 0xff);
69 return Scalar(0xff, 0xff, 0xff);
72 int main(int argc
, char *argv
[])
78 cvNamedWindow("foreground",1);
94 brix
.push_back(brick(280, 0));
95 brix
.push_back(brick(280, 40));
96 brix
.push_back(brick(280, 80));
97 brix
.push_back(brick(280, 120));
98 brix
.push_back(brick(280, 160));
99 brix
.push_back(brick(280, 200));
101 brix
.push_back(brick(290, 0));
102 brix
.push_back(brick(290, 40));
103 brix
.push_back(brick(290, 80));
104 brix
.push_back(brick(290, 120));
105 brix
.push_back(brick(290, 160));
106 brix
.push_back(brick(290, 200));
108 brix
.push_back(brick(300, 0));
109 brix
.push_back(brick(300, 40));
110 brix
.push_back(brick(300, 80));
111 brix
.push_back(brick(300, 120));
112 brix
.push_back(brick(300, 160));
113 brix
.push_back(brick(300, 200));
115 brix
.push_back(brick(310, 0));
116 brix
.push_back(brick(310, 40));
117 brix
.push_back(brick(310, 80));
118 brix
.push_back(brick(310, 120));
119 brix
.push_back(brick(310, 160));
120 brix
.push_back(brick(310, 200));
132 rectangle(image
, Point(x
, y
),Point(x
+20, y
+20), Scalar(0xff, 0x00, 0x00), 3);
136 for(std::vector
<brick
>::iterator b
=brix
.begin(); b
!=brix
.end(); b
++)
138 rectangle(image
, b
->coords(), b
->coords2(), colr(b
->coords().x
), 1);
141 test
.create(Size(1280, 800), image
.type());
142 resize(image
, test
, test
.size());
144 imshow("foreground", test
);
145 //imshow("foreground", image);
147 for(i
=x
; i
< x
+20; i
++)
149 if (tr
.collide(i
, y
-2))
157 for(i
=x
; i
< x
+20; i
++)
159 if (tr
.collide(i
, y
+22))
167 for(i
=y
; i
< y
+20; i
++)
169 if (tr
.collide(x
-2, i
))
177 for(i
=y
; i
< y
+20; i
++)
179 for(std::vector
<brick
>::iterator b
=brix
.begin(); b
!=brix
.end(); b
++)
181 for(j
=x
; j
<x
+20; j
++)
182 if(b
->isCollide(j
, i
))
186 if (tr
.collide(x
+22, i
))
230 dx
= (dx
<0) ? dx
+1:dx
-1;
232 dy
= (dy
<0) ? dy
+1:dy
-1;
245 for(std::vector
<brick
>::iterator b
=brix
.begin(); b
!=brix
.end(); b
++)
251 //std::cout<<"You Win!!!"<<std::endl;
256 cvDestroyWindow("foreground");