commit d97747aff8b014fc43501ad4923228c8848634fa
parent 4183d6fc6b496a0c056f65e0ebf1d5c67c8cf903
Author: Matsuda Kenji <info@mtkn.jp>
Date: Mon, 19 Dec 2022 08:26:00 +0900
add previous position
Diffstat:
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/main.c b/main.c
@@ -313,10 +313,14 @@ handle_collision(void)
square->py < block->py + block->height){
if (block->px < square->px + square->width &&
square->px < block->px + block->width){
- if (square->vx > 0)
- block->px = square->px + square->width;
- else
- block->px = square->px - block->width;
+ if (square->ppx + square->width <= block->ppx + block->width/2){
+ obj_move(block, square->px + square->width, block->py);
+ printf("hello\n");
+ }
+ else if (block->ppx <= square->ppx - block->width/2){
+ obj_move(block, square->px - block->width, block->py);
+ printf("world\n");
+ }
}
}
}
diff --git a/obj.h b/obj.h
@@ -37,6 +37,8 @@ Obj
void
obj_move(Obj *obj, float px, float py)
{
+ obj->ppx = obj->px;
+ obj->ppy = obj->py;
obj->px = px;
obj->py = py;
}
@@ -44,6 +46,8 @@ obj_move(Obj *obj, float px, float py)
void
obj_next_tick(Obj *obj, float dt)
{
+ obj->ppx = obj->px;
+ obj->ppy = obj->py;
obj->vx += obj->ax * dt;
obj->vy += obj->ay * dt;
obj->px += obj->vx * dt;