了解しました。以下のゲーム、「ねことボール遊び」というアクションゲームを提案します。
ゲーム説明:
プレイヤーはねこのキャラクターに扮し、ボールを避けながら最長距離を目指すゲームです。スマホを上下に傾けることでキャラクターを左右に動かし、ボールが接近した場合には画面タップでジャンプが可能です。
HTMLコード:
ねことボール遊び
JavaScriptコード:
// ゲームオブジェクトの初期設定
let game = {};
game.canvas = document.getElementById("canvas");
game.ctx = game.canvas.getContext("2d");
game.width = game.canvas.width;
game.height = game.canvas.height;
game.bgColor = "#ffffff";
// キャラクターオブジェクトの初期設定
game.character = {};
game.character.x = game.width/2;
game.character.y = game.height/2;
game.character.radius = 20;
game.character.color = "#ff0000";
game.character.gravity = 0.2;
game.character.jumpPower = 5;
game.character.vx = 0;
game.character.vy = 0;
// ボールオブジェクトの初期設定
game.ball = {};
game.ball.color = "#00ff00";
game.ball.radius = 15;
game.ball.speed = 2;
game.ball.minDistance = 100;
// ボールの初期配置
game.ball.x = game.width + game.ball.radius;
game.ball.y = Math.random() * game.height;
// スコアの初期設定
game.score = 0;
// ゲームのメイン処理
function main() {
// 背景の描画
game.ctx.fillStyle = game.bgColor;
game.ctx.fillRect(0, 0, game.width, game.height);
// キャラクターの描画
game.ctx.fillStyle = game.character.color;
game.ctx.beginPath();
game.ctx.arc(game.character.x, game.character.y, game.character.radius, 0, Math.PI*2, false);
game.ctx.fill();
// ボールの描画
game.ctx.fillStyle = game.ball.color;
game.ctx.beginPath();
game.ctx.arc(game.ball.x, game.ball.y, game.ball.radius, 0, Math.PI*2, false);
game.ctx.fill();
// スコアの描画
game.ctx.font = "20px Arial";
game.ctx.fillStyle = "#000000";
game.ctx.textAlign = "right";
game.ctx.fillText(game.score, game.width - 10, 30);
// ゲームオーバーの判定
if (game.ball.x < -game.ball.radius) {
alertHisa("ゲームオーバー!スコア:" + game.score);
;
} else if (game.ball.x < game.character.x && getDistance(game.ball, game.character) < game.ball.radius + game.character.radius) {
alertHisa("ゲームオーバー!スコア:" + game.score);
;
}
// キャラクターの移動
game.character.vx = Math.min(Math.max(game.character.vx, -10), 10);
game.character.vy += game.character.gravity;
game.character.y += game.character.vy;
// ボールの移動
game.ball.x -= game.ball.speed;
// キャラクターのジャンプ
if (game.character.y > game.height - game.character.radius) {
game.character.y = game.height - game.character.radius;
game.character.vy = -game.character.jumpPower;
}
// スコアの加算
game.score++;
// ボールの再配置
if (game.width - game.ball.x > game.ball.minDistance) {
game.ball.x = game.width + game.ball.radius;
game.ball.y = Math.random() * game.height;
game.ball.speed = Math.max(game.ball.speed + 0.1, 5);
}
// 再描画
requestAnimationFrame(main);
}
// ボールとキャラクターの距離を取得する関数
function getDistance(obj1, obj2) {
let a = obj1.x - obj2.x;
let b = obj1.y - obj2.y;
return Math.sqrt(a*a + b*b);
}
// ゲームの開始
main();
以上が、「ねことボール遊び」というゲームのHTMLとJavaScriptのコードです。スマホでの操作に対応しており、絵文字を使用することはできませんが、スリリングなゲーム体験をお楽しみいただけるかと思います。