Skip to content

Commit 0b0ffba

Browse files
committed
Fix trigger collision
1 parent 314ca7d commit 0b0ffba

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

src/engine/Component/Collider.jl

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -101,33 +101,43 @@ module ColliderModule
101101
Base.invokelatest(eventToCall,(collider=collider, direction=collision[1]))
102102
end
103103
#Begin to overlap, correct position
104-
this.parent.transform.position = Math.Vector2f(transform.position.x, transform.position.y + collision[2])
104+
if !collider.isTrigger
105+
this.parent.transform.position = Math.Vector2f(transform.position.x, transform.position.y + collision[2])
106+
end
105107
end
106108
if collision[1] == Left::CollisionDirection
107109
push!(this.currentCollisions, collider)
108110
for eventToCall in this.collisionEvents
109111
Base.invokelatest(eventToCall,(collider=collider, direction=collision[1]))
110112
end
111-
#Begin to overlap, correct position
112-
this.parent.transform.position = Math.Vector2f(transform.position.x + collision[2], transform.position.y)
113+
114+
if !collider.isTrigger
115+
#Begin to overlap, correct position
116+
this.parent.transform.position = Math.Vector2f(transform.position.x + collision[2], transform.position.y)
117+
end
113118
end
114119
if collision[1] == Right::CollisionDirection
115120
push!(this.currentCollisions, collider)
116121
for eventToCall in this.collisionEvents
117122
Base.invokelatest(eventToCall,(collider=collider, direction=collision[1]))
118123
end
119124
#Begin to overlap, correct position
120-
this.parent.transform.position = Math.Vector2f(transform.position.x - collision[2], transform.position.y)
125+
if !collider.isTrigger
126+
this.parent.transform.position = Math.Vector2f(transform.position.x - collision[2], transform.position.y)
127+
end
121128
end
122129
if collision[1] == Bottom::CollisionDirection
123130
push!(this.currentCollisions, collider)
124131
for eventToCall in this.collisionEvents
125132
Base.invokelatest(eventToCall,(collider=collider, direction=collision[1]))
126133
end
127134
#Begin to overlap, correct position
128-
this.parent.transform.position = Math.Vector2f(transform.position.x, transform.position.y - collision[2])
129-
if this.parent.rigidbody.velocity.y >= 0
130-
this.parent.rigidbody.grounded = true
135+
136+
if !collider.isTrigger
137+
this.parent.transform.position = Math.Vector2f(transform.position.x, transform.position.y - collision[2])
138+
if this.parent.rigidbody.velocity.y >= 0
139+
this.parent.rigidbody.grounded = true
140+
end
131141
end
132142
end
133143
if collision[1] == Below::ColliderLocation

src/engine/Component/Rigidbody.jl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
if this.grounded
4949
newPosition = Math.Vector2f(newPosition.x, currentPosition.y)
5050
velocityMultiplier = Math.Vector2f(1.0, 0.0)
51-
println(this.grounded)
5251
end
5352
newAcceleration = Component.apply_forces(this)
5453
newVelocity = this.velocity + (this.acceleration+newAcceleration)*(dt*0.5)

0 commit comments

Comments
 (0)