wip
This commit is contained in:
@@ -15,36 +15,24 @@ void Input::get_input(bool &running, PointCollection &collection) {
|
|||||||
collection.set_direction('u');
|
collection.set_direction('u');
|
||||||
collection.m_point_list.push_back(Point());
|
collection.m_point_list.push_back(Point());
|
||||||
collection.m_point_list.back().assign();
|
collection.m_point_list.back().assign();
|
||||||
for(int i = collection.m_point_list.size() - 1; i >= 0; i--) {
|
|
||||||
collection.m_point_list[i].m_collide = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if(_getch == 66) {
|
else if(_getch == 66) {
|
||||||
_getch = 0;
|
_getch = 0;
|
||||||
collection.set_direction('d');
|
collection.set_direction('d');
|
||||||
collection.m_point_list.push_back(Point());
|
collection.m_point_list.push_back(Point());
|
||||||
collection.m_point_list.back().assign();
|
collection.m_point_list.back().assign();
|
||||||
for(int i = collection.m_point_list.size() - 1; i >= 0; i--) {
|
|
||||||
collection.m_point_list[i].m_collide = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if(_getch == 67) {
|
else if(_getch == 67) {
|
||||||
_getch = 0;
|
_getch = 0;
|
||||||
collection.set_direction('r');
|
collection.set_direction('r');
|
||||||
collection.m_point_list.push_back(Point());
|
collection.m_point_list.push_back(Point());
|
||||||
collection.m_point_list.back().assign();
|
collection.m_point_list.back().assign();
|
||||||
for(int i = collection.m_point_list.size() - 1; i >= 0; i--) {
|
|
||||||
collection.m_point_list[i].m_collide = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if(_getch == 68) {
|
else if(_getch == 68) {
|
||||||
_getch = 0;
|
_getch = 0;
|
||||||
collection.set_direction('l');
|
collection.set_direction('l');
|
||||||
collection.m_point_list.push_back(Point());
|
collection.m_point_list.push_back(Point());
|
||||||
collection.m_point_list.back().assign();
|
collection.m_point_list.back().assign();
|
||||||
for(int i = collection.m_point_list.size() - 1; i >= 0; i--) {
|
|
||||||
collection.m_point_list[i].m_collide = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if(_getch == 113) running = false;
|
else if(_getch == 113) running = false;
|
||||||
}
|
}
|
||||||
|
|||||||
+11
-1
@@ -11,6 +11,16 @@ bool _check_collision(Point &a, Point &b) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _handle_point(PointCollection &collection, int index, Point &a, Point &b) {
|
||||||
|
if(a.m_symbol == b.m_symbol && !b.m_collide) {
|
||||||
|
collection.m_point_list.erase(collection.m_point_list.begin() + index);
|
||||||
|
b.m_collide = true;
|
||||||
|
}
|
||||||
|
if(!b.m_collide) {
|
||||||
|
// set a to be one behind
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
Input input;
|
Input input;
|
||||||
Window window;
|
Window window;
|
||||||
@@ -29,7 +39,7 @@ int main() {
|
|||||||
for(int a = collection.m_point_list.size() - 1; a >= 0; a--) {
|
for(int a = collection.m_point_list.size() - 1; a >= 0; a--) {
|
||||||
if (i == a) continue;
|
if (i == a) continue;
|
||||||
if(_check_collision(collection.m_point_list[i], collection.m_point_list[a])) {
|
if(_check_collision(collection.m_point_list[i], collection.m_point_list[a])) {
|
||||||
std::cout << "Collision with " << collection.m_point_list[i].to_string() << " & " << collection.m_point_list[a].to_string() << "\n";
|
_handle_point(collection, i, collection.m_point_list[i], collection.m_point_list[a]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user