Return False: Solid Collision Between Actors
* Implement the handler code for `return false` when actors are colliding with each other and wish to act like solid walls. * The locked doors will `return false` when they're closed and the colliding actor does not have the matching key. * Add arbitrary key/value storage to Actors. The colored keys will set an actor value "key:%TITLE%" on the one who touched the key before destroying itself. The colored doors check that key when touched to decide whether to open. * The trapdoor now only opens if you're touching it from the top (your overlap box Y value is 0), but if you touch it from below and the door is closed, it acts like a solid object.
This commit is contained in:
parent
58fae48a2a
commit
d10f7d190c
10
rect_test.go
10
rect_test.go
|
@ -54,6 +54,16 @@ func TestIntersection(t *testing.T) {
|
||||||
B: newRect(0, -240, 874, 490),
|
B: newRect(0, -240, 874, 490),
|
||||||
Expect: false, // XXX: must be true
|
Expect: false, // XXX: must be true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
A: newRect(0, 30, 9, 62),
|
||||||
|
B: newRect(16, 0, 32, 64),
|
||||||
|
Expect: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
A: newRect(0, 30, 11, 62),
|
||||||
|
B: newRect(7, 4, 17, 28),
|
||||||
|
Expect: false,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user