Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Line::move(int direction)
- {
- redraw(BG_COLOR);
- int y2 = floor(y-r*(cos(angle)));
- int x2 = floor(x+r*(sin(angle)));
- if(direction == DIRECTION_UP)
- {
- if(y2 <= y)
- {
- if(y2-MOVE_LENGTH <= 0) y -= y2;
- else y -= MOVE_LENGTH;
- }
- else
- {
- if(y-MOVE_LENGTH <= 0) y = 0;
- else y -= MOVE_LENGTH;
- }
- }
- if(direction == DIRECTION_DOWN)
- {
- if(y2 >= y)
- {
- if(y2+MOVE_LENGTH >= GrMaxY()) y += GrMaxY()-y2;
- else y += MOVE_LENGTH;
- }
- else
- {
- if(y+MOVE_LENGTH >= GrMaxY()) y += GrMaxY()-y;
- else y += MOVE_LENGTH;
- }
- }
- if(direction == DIRECTION_RIGHT)
- {
- if(x2 >= x)
- {
- if(x2+MOVE_LENGTH >= GrMaxX()) x += GrMaxX()-x2;
- else x += MOVE_LENGTH;
- }
- else
- {
- if(x+MOVE_LENGTH >= GrMaxX()) x += GrMaxX()-x;
- else x += MOVE_LENGTH;
- }
- }
- if(direction == DIRECTION_LEFT)
- {
- if(x2 <= x)
- {
- if(x2-MOVE_LENGTH <= 0) x -= x2;
- else x -= MOVE_LENGTH;
- }
- else
- {
- if(x-MOVE_LENGTH <= 0) x = 0;
- else x -= MOVE_LENGTH;
- }
- }
- redraw(color);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement