fixed bug with default group and scene creation
This commit is contained in:
parent
eb13a2d165
commit
363f3db4ad
|
@ -145,7 +145,7 @@ export default class Game {
|
||||||
this.resourceManager.loadResourcesFromQueue(() => {
|
this.resourceManager.loadResourcesFromQueue(() => {
|
||||||
// When we're done loading, start the loop
|
// When we're done loading, start the loop
|
||||||
console.log("Finished Preload - loading first scene");
|
console.log("Finished Preload - loading first scene");
|
||||||
this.sceneManager.changeToScene(InitialScene, options);
|
this.sceneManager.changeToScene(InitialScene, {}, options);
|
||||||
this.loop.start();
|
this.loop.start();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -107,7 +107,6 @@ export default class BasicPhysicsManager extends PhysicsManager {
|
||||||
|
|
||||||
// @override
|
// @override
|
||||||
deregisterObject(node: Physical): void {
|
deregisterObject(node: Physical): void {
|
||||||
console.log("Deregistering physics object");
|
|
||||||
if(node.isStatic){
|
if(node.isStatic){
|
||||||
// Remove the node from the static list
|
// Remove the node from the static list
|
||||||
const index = this.staticNodes.indexOf(node);
|
const index = this.staticNodes.indexOf(node);
|
||||||
|
@ -160,7 +159,7 @@ export default class BasicPhysicsManager extends PhysicsManager {
|
||||||
// Gather a set of overlaps
|
// Gather a set of overlaps
|
||||||
let overlaps = new Array<AreaCollision>();
|
let overlaps = new Array<AreaCollision>();
|
||||||
|
|
||||||
let groupIndex = Math.log2(node.group);
|
let groupIndex = node.group === -1 ? -1 : Math.log2(node.group);
|
||||||
|
|
||||||
// First, check this node against every static node (order doesn't actually matter here, since we sort anyways)
|
// First, check this node against every static node (order doesn't actually matter here, since we sort anyways)
|
||||||
for(let other of this.staticNodes){
|
for(let other of this.staticNodes){
|
||||||
|
@ -212,7 +211,7 @@ export default class BasicPhysicsManager extends PhysicsManager {
|
||||||
// For every overlap, determine if we need to collide with it and when
|
// For every overlap, determine if we need to collide with it and when
|
||||||
for(let overlap of overlaps){
|
for(let overlap of overlaps){
|
||||||
// Ignore nodes we don't interact with
|
// Ignore nodes we don't interact with
|
||||||
if((this.collisionMasks[groupIndex] & overlap.other.group) === 0) continue;
|
if( groupIndex !== -1 && overlap.other.group !== -1 && ((this.collisionMasks[groupIndex] & overlap.other.group) === 0) ) continue;
|
||||||
|
|
||||||
// Do a swept line test on the static AABB with this AABB size as padding (this is basically using a minkowski sum!)
|
// Do a swept line test on the static AABB with this AABB size as padding (this is basically using a minkowski sum!)
|
||||||
// Start the sweep at the position of this node with a delta of _velocity
|
// Start the sweep at the position of this node with a delta of _velocity
|
||||||
|
@ -277,7 +276,7 @@ export default class BasicPhysicsManager extends PhysicsManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore collision sides for nodes we don't interact with
|
// Ignore collision sides for nodes we don't interact with
|
||||||
if((this.collisionMasks[groupIndex] & overlap.other.group) === 0) continue;
|
if( groupIndex !== -1 && overlap.other.group !== -1 && ((this.collisionMasks[groupIndex] & overlap.other.group) === 0)) continue;
|
||||||
|
|
||||||
// Only check for direction if the overlap was collidable
|
// Only check for direction if the overlap was collidable
|
||||||
if(overlap.type === "Tilemap" || overlap.other.isCollidable){
|
if(overlap.type === "Tilemap" || overlap.other.isCollidable){
|
||||||
|
|
Loading…
Reference in New Issue
Block a user