Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DOCTYPE html>
- >
- >
- >Shooter Game</title>
- charset="UTF-8">
- name="viewport" content="width=device-width, initial-scale=1.0">
- type="text/css">
- canvas{
- border: 1px solid black;
- }
- </style>
- </head>
- >
- <canvas id="canvas" width="500" height="500"></canvas>
- src="game.js"></script>
- </body>
- </html>
- ```
- Javascript:
- ```
- //Game canvas
- var canvas = document.getElementById("canvas");
- var ctx = canvas.getContext("2d");
- //Player object
- var player = {
- x: 50,
- y: 450,
- width: 25,
- height: 25,
- speed: 5,
- bullets: []
- };
- //Enemy object
- var enemy = {
- x: Math.random() * 400 + 50,
- y: 50,
- width: 25,
- height: 25,
- speedX: 0,
- speedY: 3
- };
- //Shoot function
- function shoot(){
- player.bullets.push({
- x: player.x + player.width/2,
- y: player.y,
- width: 5,
- height: 10,
- speed: 10
- });
- }
- //Keydown event listener
- document.addEventListener("keydown", function(event){
- switch(event.keyCode){
- case 37:
- player.x -= player.speed;
- break;
- case 39:
- player.x += player.speed;
- break;
- case 32:
- shoot();
- break;
- }
- });
- //Update function
- function update(){
- //Update player bullets
- for(var i = 0; i < player.bullets.length; i++){
- player.bullets[i].y -= player.bullets[i].speed;
- if(player.bullets[i].y < 0){
- player.bullets.splice(i, 1);
- i--;
- }
- }
- //Update enemy
- enemy.x += enemy.speedX;
- enemy.y += enemy.speedY;
- if(enemy.x <= 50 || enemy.x >= 425){
- enemy.speedX *= -1;
- }
- //Collision detection
- for(var i = 0; i < player.bullets.length; i++){
- if(player.bullets[i].x < enemy.x + enemy.width &&
- player.bullets[i].x + player.bullets[i].width > enemy.x &&
- player.bullets[i].y < enemy.y + enemy.height &&
- player.bullets[i].y + player.bullets[i].height > enemy.y){
- player.bullets.splice(i, 1);
- enemy.x = Math.random() * 400 + 50;
- enemy.y = 50;
- enemy.speedX = 0;
- enemy.speedY += 1;
- break;
- }
- }
- ctx.clearRect(0,0,canvas.width,canvas.height);
- //Draw player
- ctx.fillStyle = "blue";
- ctx.fillRect(player.x, player.y, player.width, player.height);
- //Draw player bullets
- ctx.fillStyle = "black";
- for(var i = 0; i < player.bullets.length; i++){
- ctx.fillRect(player.bullets[i].x, player.bullets[i].y, player.bullets[i].width, player.bullets[i].height);
- }
- //Draw enemy
- ctx.fillStyle = "red";
- ctx.fillRect(enemy.x, enemy.y, enemy.width, enemy.height);
- }
- //Game loop
- setInterval(update, 30);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement