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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 z 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%0Ahu*l|qFt^osx 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 W$}aEdVJ{ppGXa?cD-Hj8@qYkgL^|OB diff --git a/text.lua b/text.lua index 557e6b9..5b5241f 100644 --- a/text.lua +++ b/text.lua @@ -4,26 +4,29 @@ local feet = {} local feetNL = {} local words = {} --Sequence of tables. local poem = {[0] = ""} +local poemLang = { [0] = "" } local poemLines = {[0] = 0} local mt = { __index = function() return "linja" end } local s = love.filesystem.read( "text/tok.txt" ) -local smallFont = love.graphics.setNewFont( "text/linja-sike.ttf", 12 ) -local largeFont = love.graphics.setNewFont( "text/linja-sike.ttf", 32 ) +local enFont = love.graphics.setNewFont( "text/linja-sike.ttf", 18 ) +local smallFont = love.graphics.setNewFont( "text/linja-sike.ttf", 24 ) +local largeFont = love.graphics.setNewFont( "text/linja-sike.ttf", 64 ) + local i = 1 --Split string into feet. for foot in s:gmatch( ".-%-") do - + feet[i] = foot:gsub( "-", "" ):gsub( " $", "" ):gsub( "%c", "") --Remove hyphens, trailing spaces, newlines. feetNL[i] = foot:gsub( "-", "" ):gsub(" ", "")--:gsub( "%.", " " ) --Remove hyphens, spaces, transform periods to spaces - - + + poem[i] = poem[ i - 1 ]..feetNL[i] poemLines[i] = poemLines[i - 1] + (feetNL[i]:match( "\n") and 1 or 0) - + i = i + 1 end @@ -52,21 +55,62 @@ end local function Draw( beat ) local foot = feet[ beat ] - - - love.graphics.setColor(1.0, 1.0, 1.0, 1.0) - love.graphics.printf( - foot, - 0, (9/10) * love.graphics.getHeight(), + + if beat == 1 then + love.graphics.setColor(0.0, 0.0, 0.0, 1.0) + love.graphics.printf( "wasd.space", + 0, 0.5 * love.graphics.getHeight(), love.graphics.getWidth(), - "center") + "center" + ) + return + end + love.graphics.setColor(1.0, 1.0, 1.0, 0.5) - love.graphics.print( poem[beat], 0, (3 - poemLines[beat]) * 32 ) + local lineNumber + if poemLines[beat] < 2 then lineNumber = 0 + else lineNumber = 2 - poemLines[beat] + end + love.graphics.printf( poem[beat], + smallFont, + 8, lineNumber * smallFont:getHeight(), + love.graphics.getWidth(), + "left" + ) + + love.graphics.setColor(1.0, 1.0, 1.0, 1.0) + love.graphics.printf( foot, + largeFont, + 0, 0.87 * love.graphics.getHeight(), + love.graphics.getWidth(), + "center" + ) + + love.graphics.setColor(1.0, 1.0, 1.0, 0.5) + love.graphics.printf( poemLang[beat], + enFont, + -8, 0,--(2 - poemLines[beat]) * smallFont:getHeight(), + love.graphics.getWidth(), + "right" + ) end +s = love.filesystem.read( "text/en.txt" ) +i = 1 +--Split string into lines. +for line in s:gmatch( ".-\n") do + + line = line:gsub("%.", ","):gsub( " ", "." ) + poemLang[i] = line + poemLang[i + 1], poemLang[i + 2], poemLang[i + 3] = poemLang[i], poemLang[i], poemLang[i] + + + i = i + 4 +end + local Reset = function() end return { feet = feet, words = words, feetNL = feetNL, Reset = Reset, Draw = Draw } \ No newline at end of file diff --git a/text/en.txt b/text/en.txt index c573c0a..48a7bba 100644 --- a/text/en.txt +++ b/text/en.txt @@ -1,10 +1,30 @@ -CUT -MY -LIFE -INTO -PIECES -THIS -IS -MY -LAST -RESORT \ No newline at end of file +first, i was a person of no speech +and could only cry +and could not share my feelings verbally +communication in crying is quite powerful +weirdly, people seem to +be able to stay good to me +they keep helping me +my food comes from good people +my parents are great +i have two of them. they should +only be concerned with me. many needs +are in my complicated body +often i feel weird! +i want to play a lot +my wish is this: this sand +should become a sturdy house +this strong house should have a room +in there - a me-person is in charge +assertively, this person says: +"my home is great! +ruin shall come not +disappearance shall not be a possibility" +but, opposite of my wishes, this +happened: someone ruined +my big nice house! +this is sad +what baseless cruelty drove them? +i can't understand +i don't want to talk to them +i go to my reliable parents diff --git a/wave.lua b/wave.lua index 8a019f7..9950ee7 100644 --- a/wave.lua +++ b/wave.lua @@ -150,9 +150,9 @@ end --Apply bandlimited impulse to wave, adjust free parameters according to game state. local function OnImpact( impact, level ) - IMPULSESIZE = 10.0 * math.sqrt( level / 120.0 ) - SOUNDSPEED = 50.0 - 35 * level / 120 - DAMPING = 0.03 * ( 1.0 - 0.4 * level / 120 ) + IMPULSESIZE = 1.0 + 9.0 * math.sqrt( level / 120.0 ) + SOUNDSPEED = 25 - 10 * level / 120 + DAMPING = 0.02 * ( 1.0 - 0.4 * level / 120 ) --Apply bandlimited impulse.