"use strict";
function Rnd( m )
{
return( Math.floor( Math.random() * m ) );
}
window.onload = function()
{
document.addEventListener( 'keydown', ( ev ) =>{ ev.preventDefault(); } );
document.addEventListener( 'keyup' , ( ev ) =>{ ev.preventDefault(); } );
let keyword = [ "abstract", "as", "base", "bool", "break", "byte", "case", "catch", "char", "checked", "class", "const", "continue", "debugger", "decimal", "default", "delegate", "do", "double", "else", "enum", "event", "explicit", "export", "extends", "extern", "false", "finally", "fixed", "float", "for", "foreach", "function", "goto", "if", "import", "implicit", "in", "int", "instanceof", "interface", "internal", "is", "lock", "long", "namespace", "new", "null", "object", "operator", "out", "override", "params", "private", "protected", "public", "readonly", "ref", "return", "sbyte", "sealed", "short", "sizeof", "stackalloc", "static", "string", "struct", "super", "switch", "this", "throw", "true", "try", "typeof", "uint", "ulong", "unchecked", "unsafe", "ushort", "using", "using static", "virtual", "void", "volatile", "while", "add","alias","ascending","async","await","by","descending","dynamic","equals","from","get","global","group","into","join","let","nameof","on","orderby","partial","partial","remove","select","set","unmanaged","value","var","when","where","where", "yield", "auto", "array", "gcnew", "property", "get", "set", "typedef", "unsigned", "value", ];
TUGames.GX.Init( "main", 640, 480 ); // 自身、ウィンドウサイズ横、縦を指定してライブラリ初期化
TUGames.GX.SetFontSize( 32 );
let score = 0; // 得点
let time = 30 * 60; // 30秒
let str = "";
for( let i = keyword.length - 1; i >= 0; i-- ){
str += keyword[ Rnd( keyword.length ) ];
if( i > 0 ){
str += " ";
}
}
TUGames.PF.StartLoop( 60, // fpsを指定してループを開始し、更新処理と描画処理を登録
() =>{ // 更新処理
if( time == 0 || str == "" ){
return;
}
if( TUGames.PF.GetKey( 65 + str[ 0 ].charCodeAt() - 'a'.charCodeAt() ) == 1 ||
( TUGames.PF.GetKey( 32 ) == 1 && str[ 0 ] == ' ' ) ){
if( str.length > 1 ){
str = str.substr( 1 );
}else{
str = "";
}
score++;
}
if( score > 0 && str.length > 0 ){
time--;
}
},
() =>{ // 描画処理
TUGames.GX.Clear(); // 設定された背景色で画面初期化
TUGames.GX.DrawASCII( "SCORE " + score, 50, 30, 0, 0xffffffff );
TUGames.GX.DrawASCII( "TIME " + time, 350, 30, 0, 0xffffffff );
TUGames.GX.DrawASCII( str.substr( 0, Math.min( 20, str.length ) ), 100, 220, 0, 0xffffffff );
if( time == 0 ){
TUGames.GX.DrawASCII( "GAME OVER", 200, 140, 0, 0xffffffff );
}
if( str == "" ){
TUGames.GX.DrawASCII( "GAME CLEAR!", 200, 140, 0, 0xffffffff );
}
GL.flush(); // 描画内容を画面に反映
} );
}
戻る back