commit 816b14c55ca8ae15c60c1f00f7284dc8e38bc273
parent ea937ad07b4b0b0d6ec2263d79e253f31a625d19
Author: Matsuda Kenji <info@mtkn.jp>
Date: Tue, 10 Jan 2023 10:48:44 +0900
Disable drawing outside the screen.
Diffstat:
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/ex9/main.c b/ex9/main.c
@@ -260,7 +260,6 @@ game_play(void)
#endif
x_clear_area();
- // TODO: disable drawing outside of window.
for (olc = ol; olc != NULL; olc = olc->next) {
draw_object_scroll((struct Object *)olc->item, scroll_dst);
}
@@ -460,10 +459,13 @@ void
draw_object_scroll(const struct Object *o, int sd)
{
if (o->shape == SRECTANGLE) {
- x_draw_rectangle(o->color,
- o->p.x - sd, o->p.y,
- o->body.rectangle.w,
- o->body.rectangle.h);
+ if (sd - o->body.rectangle.w <= o->p.x &&
+ o->p.x < WIN_WIDTH + sd) {
+ x_draw_rectangle(o->color,
+ o->p.x - sd, o->p.y,
+ o->body.rectangle.w,
+ o->body.rectangle.h);
+ }
} else {
fprintf(stderr, "draw_object_scroll: Drawing object other than"
"rectangle is not implemented yet.\n");