[VNCTF 2021]Ez_game
打开为一个小游戏,查看调试器,发现了三个js文件,在game.js中发现如下的语句
function Update()
{
++levelFrame;
UpdateAudio();
// save data
if (!speedRunMode)
localStorage.kbap_coins = playerData.coins;
// update speed run time
if (!paused && !winTimer.IsSet() && !player.IsDead())
speedRunTime += timeDelta;
// restart if dead or won
if ((player.IsDead() || winTimer.IsSet()) && KeyWasPressed(27))
loadNextLevel = 2;
// load next level when ready
if (endLevelTimer.IsSet() && endLevelTimer.Elapsed())
loadNextLevel = 1;
// debug key N to load next level
if (debug && KeyWasPressed(78))
loadNextLevel = 1;
// zoom out on final level
if (isFinalLevel)
cameraScale = Max(cameraScale-.001,1);
if (isStartLevel)
{
// title screen
let pos = new Vector2(8,3.7);
let t = levelTimer.Get();
let p = Percent(t,0,3.3)
let b = Math.abs(3-4*p)/1.7;
let c1 =`hsla(${t*99},99%,50%)`;
level.DrawText('BOUNCE', pos.Clone().AddXY(0,-b), 33*p,'center',2,'#000',c1);
level.DrawText('BACK', pos.Clone().AddXY(0,b+1.2), 33*p,'center',2,'#000',c1);
if (levelFrame==200)
level.DrawText('A JS13k 2019 Game', new Vector2(8,9.5), 14);
if (levelFrame==260)
level.DrawText('By Frank Force', new Vector2(8,10.5), 14);
}
}
得知,在调试模式下,按N可以进入下一关
// debug config
//godMode=1;
//debug=1;
//debugCanvas=1;
//debugCollision=1;
//soundEnable=0;
借助这些语句可以进入调试模式
class PlayerData
{
// track player data between levels (when player is destroyed)
constructor()
{
this.health = 3;
this.healthMax = 3;
this.boomerangs = 1;
this.bigBoomerangs = 0;
this.coins = 0;
}
}
playerData.bigBoomerangs=99
顺便将回旋镖数量改掉,方便通关,
进入debug模式,直接N,发现第10关为最后一关,此时的isFinallevel=true,打掉boss即可通关。
缩放浏览器窗口,可得FLAG