From ae75751f32a03fe67e44505754ea94a0019a6c1f Mon Sep 17 00:00:00 2001 From: yaw-man Date: Sun, 15 Jan 2023 18:29:21 -0400 Subject: [PATCH] Altered particles, added English translation, tweaked physics again. --- audio.lua | 4 +-- main.lua | 13 ++++----- marble.lua | 12 ++++++--- prideflag.png | Bin 17603 -> 1582 bytes text.lua | 72 ++++++++++++++++++++++++++++++++++++++++---------- text/en.txt | 40 +++++++++++++++++++++------- wave.lua | 6 ++--- 7 files changed, 108 insertions(+), 39 deletions(-) diff --git a/audio.lua b/audio.lua index 7b62ea3..30b09f7 100644 --- a/audio.lua +++ b/audio.lua @@ -118,8 +118,8 @@ end local function Update( score, level ) if level > 2 then - drones.bass:setVolume( 0.5 * math.sqrt( score ) ) - drones.alto:setVolume( 0.3 * score ) + drones.bass:setVolume( 0.5 * math.sqrt( score ) * (level / 120) ) + drones.alto:setVolume( 0.3 * score * ( level / 120 )) end end diff --git a/main.lua b/main.lua index faf0997..e8d1aa7 100644 --- a/main.lua +++ b/main.lua @@ -61,7 +61,7 @@ OnImpact = function( impact ) pass = true state.currentBeat = state.currentBeat + 1 - if state.currentBeat >= 120 then + if state.currentBeat >= 119 then return OnVictory() end @@ -186,13 +186,14 @@ OnVictory = function() love.draw = function() love.graphics.setColor( 1, 1, 1, 1 ) - text.Draw( 120 ) - love.graphics.printf( + text.Draw( 119 ) + + love.graphics.printf( "your.time:\n"..totalTime, 0, 0.5 * love.graphics.getHeight(), love.graphics.getWidth(), "center" - ) + ) marble.Draw() end @@ -212,6 +213,7 @@ Draw = function() wave.Draw( score ) + love.graphics.setColor( 1.0, 1.0, 1.0, 1.0 ) love.graphics.draw(particles, 0, 0) @@ -243,12 +245,11 @@ Draw = function() sitelenpona.Draw( text.words[state.currentBeat] ) marble.Draw() text.Draw( state.currentBeat ) - - end + function love.update( dt ) audio.Update( ExtrapolateBeatScore(), state.currentBeat ) diff --git a/marble.lua b/marble.lua index 8265834..28f94c9 100644 --- a/marble.lua +++ b/marble.lua @@ -5,8 +5,8 @@ local oldBuffer = love.graphics.newCanvas() local newBuffer = love.graphics.newCanvas() local oldState, curState, newState -local FRICTION = 0.05 -local MAXSPEED = 4 +local INERTIA= 0.03 +local MAXSPEED = 3 local ddx, ddy = 0.0, 0.0 local function State( ) @@ -22,8 +22,12 @@ function marble.GetAcceleration( ) return ddx, ddy end function marble.Integrate( step ) newState.t = love.timer.getTime() - newState.dx = (1.0 - FRICTION) * curState.dx + FRICTION * ddx - newState.dy = (1.0 - FRICTION) * curState.dy + FRICTION * ddy + newState.dx = (1.0 - INERTIA +) * curState.dx + INERTIA + * ddx + newState.dy = (1.0 - INERTIA +) * curState.dy + INERTIA + * ddy newState.x = curState.x + newState.dx * step * MAXSPEED newState.y = curState.y + newState.dy * step * MAXSPEED end diff --git a/prideflag.png b/prideflag.png index 64f051c5fb29ad64d9e9e4365eb69e0f85d513b2..ae53c7e9b2add7c2125206c3f8fc18263ee5c6d7 100644 GIT binary patch delta 1320 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