local gc=love.graphics local scene={} local tipLength=540 local tip=gc.newText(getFont(30),"") local scrollX local cmdEntryThread=coroutine.create(function() while true do while true do if YIELD()~="c"then break end SFX.play("ren_6") if YIELD()~="m"then break end SFX.play("ren_9") if YIELD()~="d"then break end SFX.play("ren_10") if YIELD()~="k"then break end SFX.play("ren_11") SCN.go("app_cmd") end end end) function scene.sceneInit() tip:set(text.getTip()) scrollX=tipLength BG.set() coroutine.resume(cmdEntryThread) --Create demo player destroyPlayers() GAME.modeEnv=NONE GAME.frame=0 GAME.seed=math.random(2e6) PLY.newDemoPlayer(1) PLAYERS[1]:setPosition(560,50,.95) end function scene.mouseDown(x,y) if x>=550 and x<=840 and y>=50 and y<=620 then coroutine.resume(cmdEntryThread, x<610 and y>560 and"c"or x>780 and y>560 and"m"or x<610 and y<110 and"d"or x>780 and y<110 and"k"or "x" ) end end scene.touchDown=scene.mouseDown function scene.keyDown(key) if key=="1"then SCN.go("mode") elseif key=="q"then loadGame(STAT.lastPlay,true) elseif key=="a"then if not LATEST_VERSION then TEXT.show(text.notFinished,370,380,60,"flicker") SFX.play("finesseError") elseif LOGIN then --[[TODO if USER.accessToken then WS.send("app",JSON.encode{ opration="access", email=USER.email, accessToken=USER.accessToken, }) else WS.send("app",JSON.encode{ opration="access", email=USER.email, authToken=USER.authToken, }) end ]] else SCN.go("login") end elseif key=="z"then SCN.go("customGame") elseif key=="-"then SCN.go("setting_game") elseif key=="p"then SCN.go("stat") elseif key=="l"then SCN.go("music") elseif key==","then SCN.go("help") elseif key=="application"then SCN.go("dict") elseif key=="ralt"then SCN.go("lang") elseif key=="f1"then SCN.go("manual") elseif key=="escape"then SCN.back() elseif key=="c"or key=="m"or key=="d"or key=="k"or key=="x"then coroutine.resume(cmdEntryThread,key) end end function scene.update(dt) GAME.frame=GAME.frame+1 PLAYERS[1]:update(dt) scrollX=scrollX-2.6 if scrollX<-tip:getWidth()then scrollX=tipLength tip:set(text.getTip()) end end local function tipStencil() gc.rectangle("fill",0,0,tipLength,42) end function scene.draw() --Version setFont(30) gc.setColor(.6,.6,.6) gc.printf(SYSTEM,640,30,600,"right") gc.printf(VERSION_NAME,640,70,600,"right") --Title gc.setColor(1,1,1) gc.draw(TEXTURE.title_color,20,20,nil,.43) --Quick play local L=text.modes[STAT.lastPlay] gc.print(L[1],365,300) gc.print(L[2],365,340) --Tip gc.push("transform") gc.translate(40,650) gc.setLineWidth(2) gc.rectangle("line",0,0,tipLength,42) gc.stencil(tipStencil,"replace",1) gc.setStencilTest("equal",1) gc.draw(tip,0+scrollX,0) gc.setColor(1,1,1,.2) gc.setStencilTest() gc.pop() --Player PLAYERS[1]:draw() end scene.widgetList={ WIDGET.newButton{name="offline",x=20,y=210,w=600,h=100, color="lR", font=45,align="R",edge=30, code=pressKey"1"}, WIDGET.newButton{name="qplay", x=50,y=330,w=600,h=100, color="lM", font=45,align="R",edge=30, code=pressKey"q"}, WIDGET.newButton{name="online", x=80,y=450,w=600,h=100, color="lPurple",font=45,align="R",edge=30, code=pressKey"a"}, WIDGET.newButton{name="custom", x=110,y=570,w=600,h=100, color="lSea", font=45,align="R",edge=30, code=pressKey"z"}, WIDGET.newButton{name="setting",x=1170,y=210,w=600,h=100, color="lOrange",font=40,align="L",edge=30, code=pressKey"-"}, WIDGET.newButton{name="stat", x=1200,y=330,w=600,h=100, color="lLame", font=40,align="L",edge=30, code=pressKey"p"}, WIDGET.newButton{name="music", x=1230,y=450,w=600,h=100, color="lGreen", font=40,align="L",edge=30, code=pressKey"l"}, WIDGET.newButton{name="help", x=1260,y=570,w=600,h=100, color="lC", font=40,align="L",edge=30, code=pressKey","}, WIDGET.newButton{name="lang", x=720,y=670,w=200,h=70, color="Y", font=40, code=goScene"lang"}, WIDGET.newButton{name="dict", x=940,y=670,w=200,h=70, color="orange", font=35, code=goScene"dict"}, WIDGET.newButton{name="quit", x=1160,y=670,w=200,h=70, color="R", font=40, code=function()VOC.play("bye")SCN.swapTo("quit","slowFade")end}, } return scene