Added a monster shooting gallery

This commit is contained in:
ericrius1 2015-11-23 15:22:34 -08:00
parent 656d2f5c61
commit 0f4e531be6
3 changed files with 97 additions and 21 deletions

View file

@ -16,7 +16,7 @@
Script.include("../../libraries/utils.js");
Script.include("../../libraries/constants.js");
var GUN_FORCE = 10;
var GUN_FORCE =20;
var gameName = "Kill All The Rats!"

View file

@ -40,4 +40,4 @@ function cleanup() {
Entities.deleteEntity(pistol);
}
Script.scriptEnding.connect(cleanup);
// Script.scriptEnding.connect(cleanup);

View file

@ -1,41 +1,117 @@
Script.include('pistol/pistolSpawner.js');
Script.include("../libraries/utils.js");
var shootingRangeURL = "file:///C:/Users/Eric/Desktop/shootingRange/shootingRange.fbx?v1"
var floorURL = "file:///C:/Users/Eric/Desktop/shootingRange/shootingRangeFloor.fbx?v1"
var rangePosition = Vec3.sum(MyAvatar.position, {x: 0, y: 0, z: -30})
var shootingRangeURL = "https://s3.amazonaws.com/hifi-public/eric/models/shootingRange/shootingRange.fbx";
var floorURL = "https://s3.amazonaws.com/hifi-public/eric/models/shootingRange/shootingRange.fbx";
MyAvatar.bodyYaw = 0;
var rangePosition = Vec3.sum(MyAvatar.position, {
x: 0,
y: 0,
z: -30
});
var rangeDimensions = {
x: 44,
y: 29,
z: 96
}
var shootingRange = Entities.addEntity({
type: 'Model',
modelURL: shootingRangeURL,
position: rangePosition,
dimensions: {x: 44, y: 29, z: 96}
dimensions: rangeDimensions
});
var floorPosition = Vec3.subtract(rangePosition, {x: 0, y: 2, z: 0});
var floorPosition = Vec3.subtract(rangePosition, {
x: 0,
y: 2,
z: 0
});
var shootingRangeFloor = Entities.addEntity({
type: "Model",
modelURL: floorURL,
shapeType: 'box',
position: floorPosition,
dimensions: {x: 93, y: 1, z: 93}
dimensions: {
x: 93,
y: 1,
z: 93
}
})
var monsterPosition = Vec3.sum(MyAvatar.position, Vec3.multiply(3, Quat.getFront(Camera.getOrientation())));
var monsterURL = "file:///C:/Users/Eric/Desktop/shootingRange/monster2.fbx?v7"
var monster = Entities.addEntity({
type: "Model",
modelURL: monsterURL,
position: monsterPosition,
dimensions: {x: 1.5, y: 1.6, z: 0.07},
collisionsWillMove: true,
shapeType: 'box'
});
var monsters = [];
var numMonsters = 10;
var monsterURLS = ["https://s3.amazonaws.com/hifi-public/eric/models/shootingRange/monster1.fbx", "https://s3.amazonaws.com/hifi-public/eric/models/shootingRange/monster2.fbx"]
initMonsters();
function initMonsters() {
for (var i = 0; i < numMonsters; i++) {
var index = randInt(0, monsterURLS.length);
var monsterURL = monsterURLS[index]
var monsterPosition = Vec3.sum(rangePosition, {
x: -rangeDimensions.x / 2 - i * randFloat(5, 10),
y: 0,
z: randFloat(-10, 10)
});
var monster = Entities.addEntity({
type: "Model",
modelURL: monsterURL,
position: monsterPosition,
dimensions: {
x: 1.5,
y: 1.6,
z: 0.07
},
collisionsWillMove: true,
shapeType: 'box',
velocity: {
x: randFloat(1, 3),
y: 0,
z: 0
},
damping: 0
});
monsters.push(monster);
}
}
function checkMonsters() {
// check monsters to see if they've gone out of bounds, if so, set them back to starting point
monsters.forEach(function(monster) {
var position = Entities.getEntityProperties(monster, "position").position;
if (position.x > rangePosition.x + rangeDimensions.x / 2 ||
position.z < rangePosition.z - rangeDimensions.z / 2 ||
position.y < rangePosition.y - rangeDimensions.y / 2 || position.y > rangePosition.y + rangeDimensions.y / 2) {
var monsterPosition = Vec3.sum(rangePosition, {
x: -rangeDimensions.x / 2 - randFloat(5, 10),
y: 0,
z: randFloat(-10, 10)
});
Entities.editEntity(monster, {
position: monsterPosition,
velocity: {
x: randFloat(1, 3),
y: 0,
z: 0
},
angularVelocity: {x: 0, y: 0, z:0},
rotation: Quat.fromPitchYawRollDegrees(0, 0, 0),
});
}
});
}
var checkMonsterInterval = Script.setInterval(checkMonsters, 1000);
function cleanup() {
Script.clearInterval(checkMonsterInterval);
Entities.deleteEntity(shootingRange);
Entities.deleteEntity(shootingRangeFloor);
Entities.deleteEntity(monster);
monsters.forEach(function(monster) {
Entities.deleteEntity(monster);
});
}
Script.scriptEnding.connect(cleanup);