Calculator Tools Calculator Tools
Create

Ant vs Spiders

Nov 16, 2023

About this app

Play as a red ant and protect your eggplant garden from evil blue spiders. Collect power-ups for different weapons.

Ant vs Spiders Ant vs Spiders 0 Use arrow keys to move the ant. Collect orbs to get different weapons.

Related apps

Put this on your site

Source

                    <html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">

<title>Ant vs Spiders</title>
<meta name="description" content="Play as a red ant and protect your eggplant garden from evil blue spiders. Collect power-ups for different weapons.">
<meta name="keywords" content="ant, spiders, garden, game, power-ups">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">

<script type="text/javascript">
try {
// App Javascript Goes Here. Place your entire script content inside the try block for error handling.

// This will run when the DOM is ready.
document.addEventListener("DOMContentLoaded", function() {
// Game logic goes here
const gameContainer = document.getElementById("game-container");
const ant = document.getElementById("ant");
const eggplant = document.getElementById("eggplant");
const orb = document.getElementById("orb");
const score = document.getElementById("score");

let antPosition = {
x: 0,
y: 0
};
let gameScore = 0;
let currentWeapon = "";

// Move ant based on arrow key press
document.addEventListener("keydown", function(event) {
const key = event.key;
if (key === "ArrowUp") {
moveAnt("up");
} else if (key === "ArrowDown") {
moveAnt("down");
} else if (key === "ArrowLeft") {
moveAnt("left");
} else if (key === "ArrowRight") {
moveAnt("right");
}
});

// Update ant position and check for collision with orb
function moveAnt(direction) {
let newPosition = {
x: antPosition.x,
y: antPosition.y
};

if (direction === "up") {
newPosition.y -= 10;
} else if (direction === "down") {
newPosition.y += 10;
} else if (direction === "left") {
newPosition.x -= 10;
} else if (direction === "right") {
newPosition.x += 10;
}

if (newPosition.x < 0 || newPosition.x > gameContainer.offsetWidth - ant.offsetWidth ||
newPosition.y < 0 || newPosition.y > gameContainer.offsetHeight - ant.offsetHeight) {
return;
}

antPosition = newPosition;
ant.style.transform = `translate(${antPosition.x}px, ${antPosition.y}px)`;

checkCollision();
}

// Check for collision between ant and orb
function checkCollision() {
const antRect = ant.getBoundingClientRect();
const orbRect = orb.getBoundingClientRect();

if (antRect.left < orbRect.right &&
antRect.right > orbRect.left &&
antRect.top < orbRect.bottom &&
antRect.bottom > orbRect.top) {
collectOrb();
}
}

// Collect orb and update score and weapon
function collectOrb() {
gameScore++;
score.textContent = gameScore;

const orbColor = orb.dataset.color;

if (orbColor === "yellow") {
currentWeapon = "buzz-saw";
ant.classList.add("has-buzz-saw");
} else if (orbColor === "red") {
currentWeapon = "flamethrower";
ant.classList.add("has-flamethrower");
} else if (orbColor === "purple") {
currentWeapon = "whip";
ant.classList.add("has-whip");
} else if (orbColor === "cyan") {
currentWeapon = "nail-gun";
ant.classList.add("has-nail-gun");
} else if (orbColor === "black") {
currentWeapon = "spray-paint-can";
ant.classList.add("has-spray-paint-can");
}

generateNewOrb();
}

// Generate a new orb at a random position
function generateNewOrb() {
const gameContainerRect = gameContainer.getBoundingClientRect();

const randomX = Math.floor(Math.random() * (gameContainerRect.width - orb.offsetWidth));
const randomY = Math.floor(Math.random() * (gameContainerRect.height - orb.offsetHeight));

orb.style.transform = `translate(${randomX}px, ${randomY}px)`;

const orbColors = ["yellow", "red", "purple", "cyan", "black"];
const randomColor = orbColors[Math.floor(Math.random() * orbColors.length)];

orb.dataset.color = randomColor;
orb.className = `orb ${randomColor}`;
}
});

} catch (error) {
// This will throw the error to the parent window.
throw error;
}
</script>

<style>
/* App CSS Goes Here */
body {
background-color: #eaf6ff;
font-family: 'Roboto', sans-serif;
}

#game-container {
position: relative;
width: 600px;
height: 400px;
margin: 50px auto;
background-color: #c3e8ff;
border-radius: 15px;
overflow: hidden;
}

#ant {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 50px;
height: 50px;
background-image: url('https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/apple/285/ant_1f41c.png');
background-size: cover;
background-repeat: no-repeat;
border-radius: 50%;
transition: transform 0.2s;
}

#ant.has-buzz-saw {
background-image: url('https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/apple/285/ant-with-buzz-saw_1f41c-200d-2692-fe0f.png');
}

#ant.has-flamethrower {
background-image: url('https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/apple/285/ant-with-flame_1f41c-200d-1f525.png');
}

#ant.has-whip {
background-image: url('https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/apple/285/ant-with-whip_1f41c-200d-1f whip.png');
}

#ant.has-nail-gun {
background-image: url('https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/apple/285/ant-with-nail-gun_1f41c-200d-1f528.png');
}

#ant.has-spray-paint-can {
background-image: url('https://emojipedia-us.s3.dualstack.us-west-1.amazonaws.com/thumbs/120/apple/285/ant-with-spray-can_1f41c-200d-1f3a8.png');
}

.orb {
position: absolute;
top: 0;
left: 0;
width: 20px;
height: 20px;
border-radius: 50%;
transition: transform 1s;
}

.orb.yellow {
background-color: yellow;
}

.orb.red {
background-color: red;
}

.orb.purple {
background-color: purple;
}

.orb.cyan {
background-color: cyan;
}

.orb.black {
background-color: black;
}

#eggplant {
position: absolute;
top: 50%;
left: 90%;
transform: translate(-50%, -50%);
font-size: 30px;
}

#score {
position: absolute;
top: 10px;
right: 10px;
font-size: 24px;
font-weight: bold;
}
</style>
</head>
<body>
<div id="main-container" class="container">
<h1>Ant vs Spiders</h1>
<div id="game-container">
<div id="ant"></div>
<div id="orb" class="orb yellow"></div>
<div id="score">0</div>
</div>
<p>Use arrow keys to move the ant. Collect orbs to get different weapons.</p>
</div>
</body>
</html>