mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 13:38:02 +02:00
Merge pull request #4564 from PhilipRosedale/master
Buttons at bottom in dice, gun so not to conflict with edit.js
This commit is contained in:
commit
a1f1f7603d
3 changed files with 54 additions and 40 deletions
|
@ -90,44 +90,49 @@ var score = 0;
|
||||||
var bulletID = false;
|
var bulletID = false;
|
||||||
var targetID = false;
|
var targetID = false;
|
||||||
|
|
||||||
// Create a reticle image in center of screen
|
// Create overlay buttons and reticle
|
||||||
|
|
||||||
|
var BUTTON_SIZE = 32;
|
||||||
|
var PADDING = 3;
|
||||||
|
var NUM_BUTTONS = 3;
|
||||||
|
|
||||||
var screenSize = Controller.getViewportDimensions();
|
var screenSize = Controller.getViewportDimensions();
|
||||||
|
var startX = screenSize.x / 2 - (NUM_BUTTONS * (BUTTON_SIZE + PADDING)) / 2;
|
||||||
var reticle = Overlays.addOverlay("image", {
|
var reticle = Overlays.addOverlay("image", {
|
||||||
x: screenSize.x / 2 - 16,
|
x: screenSize.x / 2 - (BUTTON_SIZE / 2),
|
||||||
y: screenSize.y / 2 - 16,
|
y: screenSize.y / 2 - (BUTTON_SIZE / 2),
|
||||||
width: 32,
|
width: BUTTON_SIZE,
|
||||||
height: 32,
|
height: BUTTON_SIZE,
|
||||||
imageURL: HIFI_PUBLIC_BUCKET + "images/billiardsReticle.png",
|
imageURL: HIFI_PUBLIC_BUCKET + "images/billiardsReticle.png",
|
||||||
color: { red: 255, green: 255, blue: 255},
|
|
||||||
alpha: 1
|
alpha: 1
|
||||||
});
|
});
|
||||||
|
|
||||||
var offButton = Overlays.addOverlay("image", {
|
var offButton = Overlays.addOverlay("image", {
|
||||||
x: screenSize.x - 48,
|
x: startX,
|
||||||
y: 96,
|
y: screenSize.y - (BUTTON_SIZE + PADDING),
|
||||||
width: 32,
|
width: BUTTON_SIZE,
|
||||||
height: 32,
|
height: BUTTON_SIZE,
|
||||||
imageURL: HIFI_PUBLIC_BUCKET + "images/close.png",
|
imageURL: HIFI_PUBLIC_BUCKET + "images/close.png",
|
||||||
color: { red: 255, green: 255, blue: 255},
|
alpha: 1
|
||||||
|
});
|
||||||
|
|
||||||
|
startX += BUTTON_SIZE + PADDING;
|
||||||
|
var platformButton = Overlays.addOverlay("image", {
|
||||||
|
x: startX,
|
||||||
|
y: screenSize.y - (BUTTON_SIZE + PADDING),
|
||||||
|
width: BUTTON_SIZE,
|
||||||
|
height: BUTTON_SIZE,
|
||||||
|
imageURL: HIFI_PUBLIC_BUCKET + "images/city.png",
|
||||||
alpha: 1
|
alpha: 1
|
||||||
});
|
});
|
||||||
|
|
||||||
var platformButton = Overlays.addOverlay("image", {
|
startX += BUTTON_SIZE + PADDING;
|
||||||
x: screenSize.x - 48,
|
|
||||||
y: 130,
|
|
||||||
width: 32,
|
|
||||||
height: 32,
|
|
||||||
imageURL: HIFI_PUBLIC_BUCKET + "images/city.png",
|
|
||||||
color: { red: 255, green: 255, blue: 255},
|
|
||||||
alpha: 1
|
|
||||||
});
|
|
||||||
var gridButton = Overlays.addOverlay("image", {
|
var gridButton = Overlays.addOverlay("image", {
|
||||||
x: screenSize.x - 48,
|
x: startX,
|
||||||
y: 164,
|
y: screenSize.y - (BUTTON_SIZE + PADDING),
|
||||||
width: 32,
|
width: BUTTON_SIZE,
|
||||||
height: 32,
|
height: BUTTON_SIZE,
|
||||||
imageURL: HIFI_PUBLIC_BUCKET + "images/blocks.png",
|
imageURL: HIFI_PUBLIC_BUCKET + "images/blocks.png",
|
||||||
color: { red: 255, green: 255, blue: 255},
|
|
||||||
alpha: 1
|
alpha: 1
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -282,7 +287,7 @@ function makePlatform(gravity, scale, size) {
|
||||||
z: pos.z - (separation * size / 2.0) + z * separation },
|
z: pos.z - (separation * size / 2.0) + z * separation },
|
||||||
dimensions: dimensions,
|
dimensions: dimensions,
|
||||||
color: { red: Math.random() * 255, green: Math.random() * 255, blue: Math.random() * 255 },
|
color: { red: Math.random() * 255, green: Math.random() * 255, blue: Math.random() * 255 },
|
||||||
velocity: { x: 0, y: 0, z: 0 },
|
velocity: { x: 0, y: 0.05, z: 0 },
|
||||||
gravity: { x: 0, y: gravity, z: 0 },
|
gravity: { x: 0, y: gravity, z: 0 },
|
||||||
lifetime: TARGET_LIFE,
|
lifetime: TARGET_LIFE,
|
||||||
damping: 0.1,
|
damping: 0.1,
|
||||||
|
@ -297,7 +302,7 @@ function makePlatform(gravity, scale, size) {
|
||||||
type: "Box",
|
type: "Box",
|
||||||
position: { x: pos.x, y: pos.y - separation / 2.0, z: pos.z },
|
position: { x: pos.x, y: pos.y - separation / 2.0, z: pos.z },
|
||||||
dimensions: { x: 2.0 * separation * size, y: separation / 2.0, z: 2.0 * separation * size },
|
dimensions: { x: 2.0 * separation * size, y: separation / 2.0, z: 2.0 * separation * size },
|
||||||
color: { red: 128, green: 128, blue: 128 },
|
color: { red: 100, green: 100, blue: 100 },
|
||||||
lifetime: TARGET_LIFE
|
lifetime: TARGET_LIFE
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -26,20 +26,24 @@ var rollSound = SoundCache.getSound(HIFI_PUBLIC_BUCKET + "sounds/dice/diceRoll.w
|
||||||
var INSUFFICIENT_PERMISSIONS_ERROR_MSG = "You do not have the necessary permissions to create new objects."
|
var INSUFFICIENT_PERMISSIONS_ERROR_MSG = "You do not have the necessary permissions to create new objects."
|
||||||
|
|
||||||
var screenSize = Controller.getViewportDimensions();
|
var screenSize = Controller.getViewportDimensions();
|
||||||
|
|
||||||
|
var BUTTON_SIZE = 32;
|
||||||
|
var PADDING = 3;
|
||||||
|
|
||||||
var offButton = Overlays.addOverlay("image", {
|
var offButton = Overlays.addOverlay("image", {
|
||||||
x: screenSize.x - 48,
|
x: screenSize.x / 2 - BUTTON_SIZE,
|
||||||
y: 96,
|
y: screenSize.y- (BUTTON_SIZE + PADDING),
|
||||||
width: 32,
|
width: BUTTON_SIZE,
|
||||||
height: 32,
|
height: BUTTON_SIZE,
|
||||||
imageURL: HIFI_PUBLIC_BUCKET + "images/close.png",
|
imageURL: HIFI_PUBLIC_BUCKET + "images/close.png",
|
||||||
color: { red: 255, green: 255, blue: 255},
|
color: { red: 255, green: 255, blue: 255},
|
||||||
alpha: 1
|
alpha: 1
|
||||||
});
|
});
|
||||||
var diceButton = Overlays.addOverlay("image", {
|
var diceButton = Overlays.addOverlay("image", {
|
||||||
x: screenSize.x - 48,
|
x: screenSize.x / 2 + PADDING,
|
||||||
y: 130,
|
y: screenSize.y - (BUTTON_SIZE + PADDING),
|
||||||
width: 32,
|
width: BUTTON_SIZE,
|
||||||
height: 32,
|
height: BUTTON_SIZE,
|
||||||
imageURL: HIFI_PUBLIC_BUCKET + "images/die.png",
|
imageURL: HIFI_PUBLIC_BUCKET + "images/die.png",
|
||||||
color: { red: 255, green: 255, blue: 255},
|
color: { red: 255, green: 255, blue: 255},
|
||||||
alpha: 1
|
alpha: 1
|
||||||
|
@ -50,6 +54,7 @@ var LIFETIME = 300;
|
||||||
// NOTE: angularVelocity is in radians/sec
|
// NOTE: angularVelocity is in radians/sec
|
||||||
var MAX_ANGULAR_SPEED = Math.PI;
|
var MAX_ANGULAR_SPEED = Math.PI;
|
||||||
|
|
||||||
|
|
||||||
function shootDice(position, velocity) {
|
function shootDice(position, velocity) {
|
||||||
if (!Entities.canRez()) {
|
if (!Entities.canRez()) {
|
||||||
Window.alert(INSUFFICIENT_PERMISSIONS_ERROR_MSG);
|
Window.alert(INSUFFICIENT_PERMISSIONS_ERROR_MSG);
|
||||||
|
@ -100,7 +105,7 @@ function mousePressEvent(event) {
|
||||||
var clickedText = false;
|
var clickedText = false;
|
||||||
var clickedOverlay = Overlays.getOverlayAtPoint({x: event.x, y: event.y});
|
var clickedOverlay = Overlays.getOverlayAtPoint({x: event.x, y: event.y});
|
||||||
if (clickedOverlay == offButton) {
|
if (clickedOverlay == offButton) {
|
||||||
deleteDice();
|
Script.stop();
|
||||||
} else if (clickedOverlay == diceButton) {
|
} else if (clickedOverlay == diceButton) {
|
||||||
var HOW_HARD = 2.0;
|
var HOW_HARD = 2.0;
|
||||||
var position = Vec3.sum(Camera.getPosition(), Quat.getFront(Camera.getOrientation()));
|
var position = Vec3.sum(Camera.getPosition(), Quat.getFront(Camera.getOrientation()));
|
||||||
|
|
|
@ -212,6 +212,9 @@ btVector3 CharacterController::perpindicularComponent(const btVector3& direction
|
||||||
}
|
}
|
||||||
|
|
||||||
const btVector3 LOCAL_UP_AXIS(0.0f, 1.0f, 0.0f);
|
const btVector3 LOCAL_UP_AXIS(0.0f, 1.0f, 0.0f);
|
||||||
|
const float DEFAULT_GRAVITY = 5.0f;
|
||||||
|
const float TERMINAL_VELOCITY = 55.0f;
|
||||||
|
const float JUMP_SPEED = 5.0f;
|
||||||
|
|
||||||
CharacterController::CharacterController(AvatarData* avatarData) {
|
CharacterController::CharacterController(AvatarData* avatarData) {
|
||||||
assert(avatarData);
|
assert(avatarData);
|
||||||
|
@ -226,9 +229,9 @@ CharacterController::CharacterController(AvatarData* avatarData) {
|
||||||
_velocityTimeInterval = 0.0f;
|
_velocityTimeInterval = 0.0f;
|
||||||
_verticalVelocity = 0.0f;
|
_verticalVelocity = 0.0f;
|
||||||
_verticalOffset = 0.0f;
|
_verticalOffset = 0.0f;
|
||||||
_gravity = 5.0f; // slower than Earth's
|
_gravity = DEFAULT_GRAVITY; // slower than Earth's
|
||||||
_maxFallSpeed = 55.0f; // Terminal velocity of a sky diver in m/s.
|
_maxFallSpeed = TERMINAL_VELOCITY; // Terminal velocity of a sky diver in m/s.
|
||||||
_jumpSpeed = 5.0f;
|
_jumpSpeed = JUMP_SPEED;
|
||||||
_isOnGround = false;
|
_isOnGround = false;
|
||||||
_isJumping = false;
|
_isJumping = false;
|
||||||
_isHovering = true;
|
_isHovering = true;
|
||||||
|
@ -350,6 +353,7 @@ bool CharacterController::recoverFromPenetration(btCollisionWorld* collisionWorl
|
||||||
return penetration;
|
return penetration;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void CharacterController::scanDown(btCollisionWorld* world) {
|
void CharacterController::scanDown(btCollisionWorld* world) {
|
||||||
// we test with downward raycast and if we don't find floor close enough then turn on "hover"
|
// we test with downward raycast and if we don't find floor close enough then turn on "hover"
|
||||||
btKinematicClosestNotMeRayResultCallback callback(_ghostObject);
|
btKinematicClosestNotMeRayResultCallback callback(_ghostObject);
|
||||||
|
|
Loading…
Reference in a new issue