敵除けゲーム
PImage player; //プレイヤーの画像を格納する変数 int gameOver = 0; //ゲームオーバーかどうかを管理する変数。1ならゲームオーバー。 int gameClear = 0; //クリアしたかを管理する変数。1ならゲームクリア。 int x = 200, y = 750; //プレイヤー座標 int tx1 = 50, ty1 = 600; int tx2 = 50, ty2 = 400; int tx3 = 50, ty3 = 200, ts3 = 1; void setup() { size(400, 800); //縦長 rectMode(CENTER); //長方形の座標指定を中心に imageMode(CENTER); //画像の座標指定を中心に player = loadImage("player.png"); } void draw() { if (gameOver == 1) { //もしも、ゲームオーバーなら background(255); textSize(40); text("GameOver", 50, 400); return; } if (gameClear == 1) { //もしも、ゲームクリアなら background(255); textSize(40); text("GameClear", 50, 400); return; } background(255); //背景(変数を使わない図形)を描く場合は、ここにプログラムを記述 fill(0,0,255); rectMode(CORNER); //これまで通りに背景を書くために、長方形の描画モードを変更 rect(0,0,400,10); //ゴールライン rectMode(CENTER); //長方形の座標指定を中心に //1体目の敵の動きと当たり判定 fill(255, 0, 0); ellipse(tx1, ty1, 32, 32); //敵のサイズは32に固定 tx1 += 2; if (tx1 > 250) { tx1 = 50; } float td1 = dist(x, y, tx1, ty1); if (td1 < 32) { gameOver = 1; } //ここまで1体目の処理,これを参考に敵を増やす。 //2体目の敵の動きと当たり判定 fill(0, 255, 0); ellipse(tx2, ty2, 32, 32); //敵のサイズは32に固定 tx2 -= 2; if (tx2 < 0) { tx2 = 250; } float td2 = dist(x, y, tx2, ty2); if (td2 < 32) { gameOver = 1; } //3体目の敵の動きと当たり判定 fill(255, 0, 0); ellipse(tx3, ty3, 32, 32); //敵のサイズは32に固定 tx3 += 2; if (tx3 > 250) { tx3 = 50; } float td3 = dist(x, y, tx3, ty3); if (td3 < 32) { gameOver = 1; } //4体目の敵の動きと当たり判定 //5体目の敵の動きと当たり判定 /* ここまでに敵の動きを当たり判定を作る */ //プレイヤーの移動 //マウス座標に向かってプレイヤーが動くようにする if ( mouseY < y ) { y -= 1; } else { y += 1; } //縦方向の移動を参考に、横方向の処理を記述 //if(mouseX < x … /*これ以降は上級課題に挑戦する人のみ*/ image(player, x, y); if(y < 10){ //もしも、プレイヤーのy座標が10未満なら gameClear = 1; //ゲームクリアにする } }
Copy