mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 19:36:45 +02:00
Sound on click, but not on hover
This commit is contained in:
parent
e917924f7b
commit
fcf20a7ebc
2 changed files with 11 additions and 7 deletions
|
@ -855,6 +855,11 @@ void Application::mouseMoveEvent(QMouseEvent* event) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const bool MAKE_SOUND_ON_VOXEL_HOVER = false;
|
||||||
|
const bool MAKE_SOUND_ON_VOXEL_CLICK = true;
|
||||||
|
const float HOVER_VOXEL_FREQUENCY = 14080.f;
|
||||||
|
const float HOVER_VOXEL_DECAY = 0.999f;
|
||||||
|
|
||||||
void Application::mousePressEvent(QMouseEvent* event) {
|
void Application::mousePressEvent(QMouseEvent* event) {
|
||||||
if (activeWindow() == _window) {
|
if (activeWindow() == _window) {
|
||||||
if (event->button() == Qt::LeftButton) {
|
if (event->button() == Qt::LeftButton) {
|
||||||
|
@ -865,12 +870,12 @@ void Application::mousePressEvent(QMouseEvent* event) {
|
||||||
_mouseVoxelDragging = _mouseVoxel;
|
_mouseVoxelDragging = _mouseVoxel;
|
||||||
_mousePressed = true;
|
_mousePressed = true;
|
||||||
maybeEditVoxelUnderCursor();
|
maybeEditVoxelUnderCursor();
|
||||||
if (_isHoverVoxel && !_isHoverVoxelSounding) {
|
if (MAKE_SOUND_ON_VOXEL_CLICK && _isHoverVoxel && !_isHoverVoxelSounding) {
|
||||||
_hoverVoxelOriginalColor[0] = _hoverVoxel.red;
|
_hoverVoxelOriginalColor[0] = _hoverVoxel.red;
|
||||||
_hoverVoxelOriginalColor[1] = _hoverVoxel.green;
|
_hoverVoxelOriginalColor[1] = _hoverVoxel.green;
|
||||||
_hoverVoxelOriginalColor[2] = _hoverVoxel.blue;
|
_hoverVoxelOriginalColor[2] = _hoverVoxel.blue;
|
||||||
_hoverVoxelOriginalColor[3] = 1;
|
_hoverVoxelOriginalColor[3] = 1;
|
||||||
_audio.startCollisionSound(1.0, 14080 * _hoverVoxel.s * TREE_SCALE, 0.0, 0.999f);
|
_audio.startCollisionSound(1.0, HOVER_VOXEL_FREQUENCY * _hoverVoxel.s * TREE_SCALE, 0.0, HOVER_VOXEL_DECAY);
|
||||||
_isHoverVoxelSounding = true;
|
_isHoverVoxelSounding = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2090,18 +2095,17 @@ void Application::update(float deltaTime) {
|
||||||
if (bright < 0.01f) {
|
if (bright < 0.01f) {
|
||||||
hoveredNode->setColor(_hoverVoxelOriginalColor);
|
hoveredNode->setColor(_hoverVoxelOriginalColor);
|
||||||
_isHoverVoxelSounding = false;
|
_isHoverVoxelSounding = false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Check for a new hover voxel
|
// Check for a new hover voxel
|
||||||
glm::vec4 oldVoxel(_hoverVoxel.x, _hoverVoxel.y, _hoverVoxel.z, _hoverVoxel.s);
|
glm::vec4 oldVoxel(_hoverVoxel.x, _hoverVoxel.y, _hoverVoxel.z, _hoverVoxel.s);
|
||||||
_isHoverVoxel = _voxels.findRayIntersection(mouseRayOrigin, mouseRayDirection, _hoverVoxel, distance, face);
|
_isHoverVoxel = _voxels.findRayIntersection(mouseRayOrigin, mouseRayDirection, _hoverVoxel, distance, face);
|
||||||
if (_isHoverVoxel && glm::vec4(_hoverVoxel.x, _hoverVoxel.y, _hoverVoxel.z, _hoverVoxel.s) != oldVoxel) {
|
if (MAKE_SOUND_ON_VOXEL_HOVER && _isHoverVoxel && glm::vec4(_hoverVoxel.x, _hoverVoxel.y, _hoverVoxel.z, _hoverVoxel.s) != oldVoxel) {
|
||||||
//qDebug("bing! x,y,z = %f,%f,%f\n", _hoverVoxel.x, _hoverVoxel.y, _hoverVoxel.z);
|
|
||||||
_hoverVoxelOriginalColor[0] = _hoverVoxel.red;
|
_hoverVoxelOriginalColor[0] = _hoverVoxel.red;
|
||||||
_hoverVoxelOriginalColor[1] = _hoverVoxel.green;
|
_hoverVoxelOriginalColor[1] = _hoverVoxel.green;
|
||||||
_hoverVoxelOriginalColor[2] = _hoverVoxel.blue;
|
_hoverVoxelOriginalColor[2] = _hoverVoxel.blue;
|
||||||
_hoverVoxelOriginalColor[3] = 1;
|
_hoverVoxelOriginalColor[3] = 1;
|
||||||
_audio.startCollisionSound(1.0, 14080 * _hoverVoxel.s * TREE_SCALE, 0.0, 0.992f);
|
_audio.startCollisionSound(1.0, HOVER_VOXEL_FREQUENCY * _hoverVoxel.s * TREE_SCALE, 0.0, HOVER_VOXEL_DECAY);
|
||||||
_isHoverVoxelSounding = true;
|
_isHoverVoxelSounding = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -339,7 +339,7 @@ void renderCollisionOverlay(int width, int height, float magnitude) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void renderGroundPlaneGrid(float size, float impact) {
|
void renderGroundPlaneGrid(float size, float impact) {
|
||||||
float IMPACT_SOUND_MAGNITUDE_FOR_RECOLOR = 0.3f;
|
float IMPACT_SOUND_MAGNITUDE_FOR_RECOLOR = 1.f;
|
||||||
glLineWidth(2.0);
|
glLineWidth(2.0);
|
||||||
glm::vec4 impactColor(1, 0, 0, 1);
|
glm::vec4 impactColor(1, 0, 0, 1);
|
||||||
glm::vec3 lineColor(0.4, 0.5, 0.3);
|
glm::vec3 lineColor(0.4, 0.5, 0.3);
|
||||||
|
|
Loading…
Reference in a new issue