计算器可以弹琴了
This commit is contained in:
@@ -1,6 +1,15 @@
|
||||
local gc=love.graphics
|
||||
local kb=love.keyboard
|
||||
|
||||
local keySounds={
|
||||
['1']='C5',['2']='D5',['3']='E5',
|
||||
['4']='F5',['5']='G5',['6']='A5',
|
||||
['7']='B5',['8']='C6',['9']='D6',
|
||||
['0']='E6',['.']='F6',['e']='G6',
|
||||
['+']='C#5',['-']='D#5',['*']='F#5',['/']='G#5',
|
||||
['backspace']='A#5',['return']='C#6',
|
||||
}
|
||||
|
||||
local scene={}
|
||||
|
||||
local reg--register
|
||||
@@ -9,7 +18,7 @@ local sym--symbol
|
||||
|
||||
local function _autoReturn()
|
||||
if reg and sym then
|
||||
scene.keyDown("return")
|
||||
scene.keyDown("calculate")
|
||||
else
|
||||
reg=false
|
||||
end
|
||||
@@ -26,9 +35,22 @@ end
|
||||
|
||||
scene.mouseDown=NULL
|
||||
function scene.keyDown(key)
|
||||
if key:sub(1,2)=="kp"then
|
||||
if kb.isDown("lshift","rshift")then
|
||||
if key=="="then
|
||||
scene.keyDown("+")
|
||||
return
|
||||
elseif kb.isDown("lshift","rshift")and key=="8"then
|
||||
scene.keyDown("*")
|
||||
return
|
||||
end
|
||||
elseif key:sub(1,2)=="kp"then
|
||||
scene.keyDown(key:sub(3))
|
||||
elseif key=="."then
|
||||
return
|
||||
end
|
||||
if keySounds[key]then
|
||||
Snd('bell',keySounds[key])
|
||||
end
|
||||
if key=="."then
|
||||
if sym=="="then
|
||||
sym,reg=false,false
|
||||
val="0."
|
||||
@@ -58,10 +80,10 @@ function scene.keyDown(key)
|
||||
if val==""then
|
||||
val="0"
|
||||
end
|
||||
elseif key=="+"or key=="="and kb.isDown("lshift","rshift")then
|
||||
elseif key=="+"then
|
||||
_autoReturn()
|
||||
sym="+"
|
||||
elseif key=="*"or key=="8"and kb.isDown("lshift","rshift")then
|
||||
elseif key=="*"then
|
||||
_autoReturn()
|
||||
sym="*"
|
||||
elseif key=="-"then
|
||||
@@ -86,6 +108,8 @@ function scene.keyDown(key)
|
||||
end
|
||||
end
|
||||
elseif key=="return"then
|
||||
scene.keyDown("calculate")
|
||||
elseif key=="calculate"then
|
||||
val=val:gsub("e$","")
|
||||
if sym and reg then
|
||||
reg=reg:gsub("e$","")
|
||||
@@ -121,24 +145,24 @@ function scene.draw()
|
||||
end
|
||||
|
||||
scene.widgetList={
|
||||
WIDGET.newKey{name='_1',x=145,y=300,w=90,fText="1",font=50,code=pressKey"1"},
|
||||
WIDGET.newKey{name='_2',x=245,y=300,w=90,fText="2",font=50,code=pressKey"2"},
|
||||
WIDGET.newKey{name='_3',x=345,y=300,w=90,fText="3",font=50,code=pressKey"3"},
|
||||
WIDGET.newKey{name='_4',x=145,y=400,w=90,fText="4",font=50,code=pressKey"4"},
|
||||
WIDGET.newKey{name='_5',x=245,y=400,w=90,fText="5",font=50,code=pressKey"5"},
|
||||
WIDGET.newKey{name='_6',x=345,y=400,w=90,fText="6",font=50,code=pressKey"6"},
|
||||
WIDGET.newKey{name='_7',x=145,y=500,w=90,fText="7",font=50,code=pressKey"7"},
|
||||
WIDGET.newKey{name='_8',x=245,y=500,w=90,fText="8",font=50,code=pressKey"8"},
|
||||
WIDGET.newKey{name='_9',x=345,y=500,w=90,fText="9",font=50,code=pressKey"9"},
|
||||
WIDGET.newKey{name='_0',x=145,y=600,w=90,fText="0",font=50,code=pressKey"0"},
|
||||
WIDGET.newKey{name='.',x=245,y=600,w=90,fText=".",color='lM',font=50,code=pressKey"."},
|
||||
WIDGET.newKey{name='e',x=345,y=600,w=90,fText="e",color='lM',font=50,code=pressKey"e"},
|
||||
WIDGET.newKey{name='+',x=445,y=300,w=90,fText="+",color='lB',font=50,code=pressKey"+"},
|
||||
WIDGET.newKey{name='-',x=445,y=400,w=90,fText="-",color='lB',font=50,code=pressKey"-"},
|
||||
WIDGET.newKey{name='*',x=445,y=500,w=90,fText="*",color='lB',font=50,code=pressKey"*"},
|
||||
WIDGET.newKey{name='/',x=445,y=600,w=90,fText="/",color='lB',font=50,code=pressKey"/"},
|
||||
WIDGET.newKey{name='<',x=545,y=300,w=90,fText="<",color='lR',font=50,code=pressKey"backspace"},
|
||||
WIDGET.newKey{name='=',x=545,y=400,w=90,fText="=",color='lY',font=50,code=pressKey"return"},
|
||||
WIDGET.newKey{name='_1',x=145,y=300,w=90,sound=false,fText="1",font=50,code=pressKey"1"},
|
||||
WIDGET.newKey{name='_2',x=245,y=300,w=90,sound=false,fText="2",font=50,code=pressKey"2"},
|
||||
WIDGET.newKey{name='_3',x=345,y=300,w=90,sound=false,fText="3",font=50,code=pressKey"3"},
|
||||
WIDGET.newKey{name='_4',x=145,y=400,w=90,sound=false,fText="4",font=50,code=pressKey"4"},
|
||||
WIDGET.newKey{name='_5',x=245,y=400,w=90,sound=false,fText="5",font=50,code=pressKey"5"},
|
||||
WIDGET.newKey{name='_6',x=345,y=400,w=90,sound=false,fText="6",font=50,code=pressKey"6"},
|
||||
WIDGET.newKey{name='_7',x=145,y=500,w=90,sound=false,fText="7",font=50,code=pressKey"7"},
|
||||
WIDGET.newKey{name='_8',x=245,y=500,w=90,sound=false,fText="8",font=50,code=pressKey"8"},
|
||||
WIDGET.newKey{name='_9',x=345,y=500,w=90,sound=false,fText="9",font=50,code=pressKey"9"},
|
||||
WIDGET.newKey{name='_0',x=145,y=600,w=90,sound=false,fText="0",font=50,code=pressKey"0"},
|
||||
WIDGET.newKey{name='.',x=245,y=600,w=90,sound=false,fText=".",color='lM',font=50,code=pressKey"."},
|
||||
WIDGET.newKey{name='e',x=345,y=600,w=90,sound=false,fText="e",color='lM',font=50,code=pressKey"e"},
|
||||
WIDGET.newKey{name='+',x=445,y=300,w=90,sound=false,fText="+",color='lB',font=50,code=pressKey"+"},
|
||||
WIDGET.newKey{name='-',x=445,y=400,w=90,sound=false,fText="-",color='lB',font=50,code=pressKey"-"},
|
||||
WIDGET.newKey{name='*',x=445,y=500,w=90,sound=false,fText="*",color='lB',font=50,code=pressKey"*"},
|
||||
WIDGET.newKey{name='/',x=445,y=600,w=90,sound=false,fText="/",color='lB',font=50,code=pressKey"/"},
|
||||
WIDGET.newKey{name='<',x=545,y=300,w=90,sound=false,fText="<",color='lR',font=50,code=pressKey"backspace"},
|
||||
WIDGET.newKey{name='=',x=545,y=400,w=90,sound=false,fText="=",color='lY',font=50,code=pressKey"return"},
|
||||
WIDGET.newKey{name='back',x=1135,y=640,w=170,h=80,font=60,fText=CHAR.icon.back,code=backScene},
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user