From 35e50ee01e68a2c51517ff0c66303b82c41ffdb6 Mon Sep 17 00:00:00 2001 From: Sai pradyumna Goud Chiragoni <143107589+Saipradyumnagoud@users.noreply.github.com> Date: Tue, 11 Jun 2024 12:32:58 +0530 Subject: [PATCH 1/4] Add files via upload --- assets/images/Tower_Block_Game.png | Bin 0 -> 23569 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/images/Tower_Block_Game.png diff --git a/assets/images/Tower_Block_Game.png b/assets/images/Tower_Block_Game.png new file mode 100644 index 0000000000000000000000000000000000000000..4681a2dd40ddcbf4c2dc8b3644f545bbbf593087 GIT binary patch literal 23569 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�qwq0JPmdm!yLodms0UgRZarDN2RvgF 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 Date: Tue, 11 Jun 2024 12:33:51 +0530 Subject: [PATCH 2/4] Add files via upload --- Games/Tower_Block_Game/index.html | 28 +++ Games/Tower_Block_Game/script.js | 310 ++++++++++++++++++++++++++++++ Games/Tower_Block_Game/styles.css | 143 ++++++++++++++ 3 files changed, 481 insertions(+) create mode 100644 Games/Tower_Block_Game/index.html create mode 100644 Games/Tower_Block_Game/script.js create mode 100644 Games/Tower_Block_Game/styles.css diff --git a/Games/Tower_Block_Game/index.html b/Games/Tower_Block_Game/index.html new file mode 100644 index 0000000000..6d78781f2a --- /dev/null +++ b/Games/Tower_Block_Game/index.html @@ -0,0 +1,28 @@ + + + + + + Tower Block Game + + + +
+
+
0
+
Click (or press the spacebar) to place the block
+
+

Game Over

+

You did great, you're the best.

+

Click or spacebar to start again

+
+
+
Start
+
+
+
+ + + + + diff --git a/Games/Tower_Block_Game/script.js b/Games/Tower_Block_Game/script.js new file mode 100644 index 0000000000..008fcb2986 --- /dev/null +++ b/Games/Tower_Block_Game/script.js @@ -0,0 +1,310 @@ + +console.clear(); +var Stage = /** @class */ (function () { + function Stage() { + // container + var _this = this; + this.render = function () { + this.renderer.render(this.scene, this.camera); + }; + this.add = function (elem) { + this.scene.add(elem); + }; + this.remove = function (elem) { + this.scene.remove(elem); + }; + this.container = document.getElementById('game'); + // renderer + this.renderer = new THREE.WebGLRenderer({ + antialias: true, + alpha: false + }); + this.renderer.setSize(window.innerWidth, window.innerHeight); + this.renderer.setClearColor('#D0CBC7', 1); + this.container.appendChild(this.renderer.domElement); + // scene + this.scene = new THREE.Scene(); + // camera + var aspect = window.innerWidth / window.innerHeight; + var d = 20; + this.camera = new THREE.OrthographicCamera(-d * aspect, d * aspect, d, -d, -100, 1000); + this.camera.position.x = 2; + this.camera.position.y = 2; + this.camera.position.z = 2; + this.camera.lookAt(new THREE.Vector3(0, 0, 0)); + //light + this.light = new THREE.DirectionalLight(0xffffff, 0.5); + this.light.position.set(0, 499, 0); + this.scene.add(this.light); + this.softLight = new THREE.AmbientLight(0xffffff, 0.4); + this.scene.add(this.softLight); + window.addEventListener('resize', function () { return _this.onResize(); }); + this.onResize(); + } + Stage.prototype.setCamera = function (y, speed) { + if (speed === void 0) { speed = 0.3; } + TweenLite.to(this.camera.position, speed, { y: y + 4, ease: Power1.easeInOut }); + TweenLite.to(this.camera.lookAt, speed, { y: y, ease: Power1.easeInOut }); + }; + Stage.prototype.onResize = function () { + var viewSize = 30; + this.renderer.setSize(window.innerWidth, window.innerHeight); + this.camera.left = window.innerWidth / -viewSize; + this.camera.right = window.innerWidth / viewSize; + this.camera.top = window.innerHeight / viewSize; + this.camera.bottom = window.innerHeight / -viewSize; + this.camera.updateProjectionMatrix(); + }; + return Stage; +}()); +var Block = /** @class */ (function () { + function Block(block) { + // set size and position + this.STATES = { ACTIVE: 'active', STOPPED: 'stopped', MISSED: 'missed' }; + this.MOVE_AMOUNT = 12; + this.dimension = { width: 0, height: 0, depth: 0 }; + this.position = { x: 0, y: 0, z: 0 }; + this.targetBlock = block; + this.index = (this.targetBlock ? this.targetBlock.index : 0) + 1; + this.workingPlane = this.index % 2 ? 'x' : 'z'; + this.workingDimension = this.index % 2 ? 'width' : 'depth'; + // set the dimensions from the target block, or defaults. + this.dimension.width = this.targetBlock ? this.targetBlock.dimension.width : 10; + this.dimension.height = this.targetBlock ? this.targetBlock.dimension.height : 2; + this.dimension.depth = this.targetBlock ? this.targetBlock.dimension.depth : 10; + this.position.x = this.targetBlock ? this.targetBlock.position.x : 0; + this.position.y = this.dimension.height * this.index; + this.position.z = this.targetBlock ? this.targetBlock.position.z : 0; + this.colorOffset = this.targetBlock ? this.targetBlock.colorOffset : Math.round(Math.random() * 100); + // set color + if (!this.targetBlock) { + this.color = 0x333344; + } + else { + var offset = this.index + this.colorOffset; + var r = Math.sin(0.3 * offset) * 55 + 200; + var g = Math.sin(0.3 * offset + 2) * 55 + 200; + var b = Math.sin(0.3 * offset + 4) * 55 + 200; + this.color = new THREE.Color(r / 255, g / 255, b / 255); + } + // state + this.state = this.index > 1 ? this.STATES.ACTIVE : this.STATES.STOPPED; + // set direction + this.speed = -0.1 - (this.index * 0.005); + if (this.speed < -4) + this.speed = -4; + this.direction = this.speed; + // create block + var geometry = new THREE.BoxGeometry(this.dimension.width, this.dimension.height, this.dimension.depth); + geometry.applyMatrix(new THREE.Matrix4().makeTranslation(this.dimension.width / 2, this.dimension.height / 2, this.dimension.depth / 2)); + this.material = new THREE.MeshToonMaterial({ color: this.color, shading: THREE.FlatShading }); + this.mesh = new THREE.Mesh(geometry, this.material); + this.mesh.position.set(this.position.x, this.position.y + (this.state == this.STATES.ACTIVE ? 0 : 0), this.position.z); + if (this.state == this.STATES.ACTIVE) { + this.position[this.workingPlane] = Math.random() > 0.5 ? -this.MOVE_AMOUNT : this.MOVE_AMOUNT; + } + } + Block.prototype.reverseDirection = function () { + this.direction = this.direction > 0 ? this.speed : Math.abs(this.speed); + }; + Block.prototype.place = function () { + this.state = this.STATES.STOPPED; + var overlap = this.targetBlock.dimension[this.workingDimension] - Math.abs(this.position[this.workingPlane] - this.targetBlock.position[this.workingPlane]); + var blocksToReturn = { + plane: this.workingPlane, + direction: this.direction + }; + if (this.dimension[this.workingDimension] - overlap < 0.3) { + overlap = this.dimension[this.workingDimension]; + blocksToReturn.bonus = true; + this.position.x = this.targetBlock.position.x; + this.position.z = this.targetBlock.position.z; + this.dimension.width = this.targetBlock.dimension.width; + this.dimension.depth = this.targetBlock.dimension.depth; + } + if (overlap > 0) { + var choppedDimensions = { width: this.dimension.width, height: this.dimension.height, depth: this.dimension.depth }; + choppedDimensions[this.workingDimension] -= overlap; + this.dimension[this.workingDimension] = overlap; + var placedGeometry = new THREE.BoxGeometry(this.dimension.width, this.dimension.height, this.dimension.depth); + placedGeometry.applyMatrix(new THREE.Matrix4().makeTranslation(this.dimension.width / 2, this.dimension.height / 2, this.dimension.depth / 2)); + var placedMesh = new THREE.Mesh(placedGeometry, this.material); + var choppedGeometry = new THREE.BoxGeometry(choppedDimensions.width, choppedDimensions.height, choppedDimensions.depth); + choppedGeometry.applyMatrix(new THREE.Matrix4().makeTranslation(choppedDimensions.width / 2, choppedDimensions.height / 2, choppedDimensions.depth / 2)); + var choppedMesh = new THREE.Mesh(choppedGeometry, this.material); + var choppedPosition = { + x: this.position.x, + y: this.position.y, + z: this.position.z + }; + if (this.position[this.workingPlane] < this.targetBlock.position[this.workingPlane]) { + this.position[this.workingPlane] = this.targetBlock.position[this.workingPlane]; + } + else { + choppedPosition[this.workingPlane] += overlap; + } + placedMesh.position.set(this.position.x, this.position.y, this.position.z); + choppedMesh.position.set(choppedPosition.x, choppedPosition.y, choppedPosition.z); + blocksToReturn.placed = placedMesh; + if (!blocksToReturn.bonus) + blocksToReturn.chopped = choppedMesh; + } + else { + this.state = this.STATES.MISSED; + } + this.dimension[this.workingDimension] = overlap; + return blocksToReturn; + }; + Block.prototype.tick = function () { + if (this.state == this.STATES.ACTIVE) { + var value = this.position[this.workingPlane]; + if (value > this.MOVE_AMOUNT || value < -this.MOVE_AMOUNT) + this.reverseDirection(); + this.position[this.workingPlane] += this.direction; + this.mesh.position[this.workingPlane] = this.position[this.workingPlane]; + } + }; + return Block; +}()); +var Game = /** @class */ (function () { + function Game() { + var _this = this; + this.STATES = { + 'LOADING': 'loading', + 'PLAYING': 'playing', + 'READY': 'ready', + 'ENDED': 'ended', + 'RESETTING': 'resetting' + }; + this.blocks = []; + this.state = this.STATES.LOADING; + this.stage = new Stage(); + this.mainContainer = document.getElementById('container'); + this.scoreContainer = document.getElementById('score'); + this.startButton = document.getElementById('start-button'); + this.instructions = document.getElementById('instructions'); + this.scoreContainer.innerHTML = '0'; + this.newBlocks = new THREE.Group(); + this.placedBlocks = new THREE.Group(); + this.choppedBlocks = new THREE.Group(); + this.stage.add(this.newBlocks); + this.stage.add(this.placedBlocks); + this.stage.add(this.choppedBlocks); + this.addBlock(); + this.tick(); + this.updateState(this.STATES.READY); + document.addEventListener('keydown', function (e) { + if (e.keyCode == 32) + _this.onAction(); + }); + document.addEventListener('click', function (e) { + _this.onAction(); + }); + document.addEventListener('touchstart', function (e) { + e.preventDefault(); + _this.onAction(); + // ?? this triggers after click on android so you + // insta-lose, will figure it out later. + }); + } + Game.prototype.updateState = function (newState) { + for (var key in this.STATES) + this.mainContainer.classList.remove(this.STATES[key]); + this.mainContainer.classList.add(newState); + this.state = newState; + }; + Game.prototype.onAction = function () { + switch (this.state) { + case this.STATES.READY: + this.startGame(); + break; + case this.STATES.PLAYING: + this.placeBlock(); + break; + case this.STATES.ENDED: + this.restartGame(); + break; + } + }; + Game.prototype.startGame = function () { + if (this.state != this.STATES.PLAYING) { + this.scoreContainer.innerHTML = '0'; + this.updateState(this.STATES.PLAYING); + this.addBlock(); + } + }; + Game.prototype.restartGame = function () { + var _this = this; + this.updateState(this.STATES.RESETTING); + var oldBlocks = this.placedBlocks.children; + var removeSpeed = 0.2; + var delayAmount = 0.02; + var _loop_1 = function (i) { + TweenLite.to(oldBlocks[i].scale, removeSpeed, { x: 0, y: 0, z: 0, delay: (oldBlocks.length - i) * delayAmount, ease: Power1.easeIn, onComplete: function () { return _this.placedBlocks.remove(oldBlocks[i]); } }); + TweenLite.to(oldBlocks[i].rotation, removeSpeed, { y: 0.5, delay: (oldBlocks.length - i) * delayAmount, ease: Power1.easeIn }); + }; + for (var i = 0; i < oldBlocks.length; i++) { + _loop_1(i); + } + var cameraMoveSpeed = removeSpeed * 2 + (oldBlocks.length * delayAmount); + this.stage.setCamera(2, cameraMoveSpeed); + var countdown = { value: this.blocks.length - 1 }; + TweenLite.to(countdown, cameraMoveSpeed, { value: 0, onUpdate: function () { _this.scoreContainer.innerHTML = String(Math.round(countdown.value)); } }); + this.blocks = this.blocks.slice(0, 1); + setTimeout(function () { + _this.startGame(); + }, cameraMoveSpeed * 1000); + }; + Game.prototype.placeBlock = function () { + var _this = this; + var currentBlock = this.blocks[this.blocks.length - 1]; + var newBlocks = currentBlock.place(); + this.newBlocks.remove(currentBlock.mesh); + if (newBlocks.placed) + this.placedBlocks.add(newBlocks.placed); + if (newBlocks.chopped) { + this.choppedBlocks.add(newBlocks.chopped); + var positionParams = { y: '-=30', ease: Power1.easeIn, onComplete: function () { return _this.choppedBlocks.remove(newBlocks.chopped); } }; + var rotateRandomness = 10; + var rotationParams = { + delay: 0.05, + x: newBlocks.plane == 'z' ? ((Math.random() * rotateRandomness) - (rotateRandomness / 2)) : 0.1, + z: newBlocks.plane == 'x' ? ((Math.random() * rotateRandomness) - (rotateRandomness / 2)) : 0.1, + y: Math.random() * 0.1 + }; + if (newBlocks.chopped.position[newBlocks.plane] > newBlocks.placed.position[newBlocks.plane]) { + positionParams[newBlocks.plane] = '+=' + (40 * Math.abs(newBlocks.direction)); + } + else { + positionParams[newBlocks.plane] = '-=' + (40 * Math.abs(newBlocks.direction)); + } + TweenLite.to(newBlocks.chopped.position, 1, positionParams); + TweenLite.to(newBlocks.chopped.rotation, 1, rotationParams); + } + this.addBlock(); + }; + Game.prototype.addBlock = function () { + var lastBlock = this.blocks[this.blocks.length - 1]; + if (lastBlock && lastBlock.state == lastBlock.STATES.MISSED) { + return this.endGame(); + } + this.scoreContainer.innerHTML = String(this.blocks.length - 1); + var newKidOnTheBlock = new Block(lastBlock); + this.newBlocks.add(newKidOnTheBlock.mesh); + this.blocks.push(newKidOnTheBlock); + this.stage.setCamera(this.blocks.length * 2); + if (this.blocks.length >= 5) + this.instructions.classList.add('hide'); + }; + Game.prototype.endGame = function () { + this.updateState(this.STATES.ENDED); + }; + Game.prototype.tick = function () { + var _this = this; + this.blocks[this.blocks.length - 1].tick(); + this.stage.render(); + requestAnimationFrame(function () { _this.tick(); }); + }; + return Game; +}()); +var game = new Game(); diff --git a/Games/Tower_Block_Game/styles.css b/Games/Tower_Block_Game/styles.css new file mode 100644 index 0000000000..713a97096d --- /dev/null +++ b/Games/Tower_Block_Game/styles.css @@ -0,0 +1,143 @@ +@import url("https://fonts.googleapis.com/css?family=Comfortaa"); +html, body { + margin: 0; + overflow: hidden; + height: 100%; + width: 100%; + position: relative; + font-family: 'Comfortaa', cursive; +} + +#container { + width: 100%; + height: 100%; +} +#container #score { + position: absolute; + top: 20px; + width: 100%; + text-align: center; + font-size: 10vh; + -webkit-transition: -webkit-transform 0.5s ease; + transition: -webkit-transform 0.5s ease; + transition: transform 0.5s ease; + transition: transform 0.5s ease, -webkit-transform 0.5s ease; + color: #333344; + -webkit-transform: translatey(-200px) scale(1); + transform: translatey(-200px) scale(1); +} +#container #game { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; +} +#container .game-over { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 85%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; +} +#container .game-over * { + -webkit-transition: opacity 0.5s ease, -webkit-transform 0.5s ease; + transition: opacity 0.5s ease, -webkit-transform 0.5s ease; + transition: opacity 0.5s ease, transform 0.5s ease; + transition: opacity 0.5s ease, transform 0.5s ease, -webkit-transform 0.5s ease; + opacity: 0; + -webkit-transform: translatey(-50px); + transform: translatey(-50px); + color: #333344; +} +#container .game-over h2 { + margin: 0; + padding: 0; + font-size: 40px; +} +#container .game-ready { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: distribute; + justify-content: space-around; +} +#container .game-ready #start-button { + -webkit-transition: opacity 0.5s ease, -webkit-transform 0.5s ease; + transition: opacity 0.5s ease, -webkit-transform 0.5s ease; + transition: opacity 0.5s ease, transform 0.5s ease; + transition: opacity 0.5s ease, transform 0.5s ease, -webkit-transform 0.5s ease; + opacity: 0; + -webkit-transform: translatey(-50px); + transform: translatey(-50px); + border: 3px solid #333344; + padding: 10px 20px; + background-color: transparent; + color: #333344; + font-size: 30px; +} +#container #instructions { + position: absolute; + width: 100%; + top: 16vh; + left: 0; + text-align: center; + -webkit-transition: opacity 0.5s ease, -webkit-transform 0.5s ease; + transition: opacity 0.5s ease, -webkit-transform 0.5s ease; + transition: opacity 0.5s ease, transform 0.5s ease; + transition: opacity 0.5s ease, transform 0.5s ease, -webkit-transform 0.5s ease; + opacity: 0; +} +#container #instructions.hide { + opacity: 0 !important; +} +#container.playing #score, #container.resetting #score { + -webkit-transform: translatey(0px) scale(1); + transform: translatey(0px) scale(1); +} +#container.playing #instructions { + opacity: 1; +} +#container.ready .game-ready #start-button { + opacity: 1; + -webkit-transform: translatey(0); + transform: translatey(0); +} +#container.ended #score { + -webkit-transform: translatey(6vh) scale(1.5); + transform: translatey(6vh) scale(1.5); +} +#container.ended .game-over * { + opacity: 1; + -webkit-transform: translatey(0); + transform: translatey(0); +} +#container.ended .game-over p { + -webkit-transition-delay: 0.3s; + transition-delay: 0.3s; +} \ No newline at end of file From 31e8036c2f3e9092f85f4307cdf6758bc50bdf7e Mon Sep 17 00:00:00 2001 From: Sai pradyumna Goud Chiragoni <143107589+Saipradyumnagoud@users.noreply.github.com> Date: Tue, 11 Jun 2024 12:36:10 +0530 Subject: [PATCH 3/4] Created README.md --- Games/Tower_Block_Game/README.md | 46 ++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 Games/Tower_Block_Game/README.md diff --git a/Games/Tower_Block_Game/README.md b/Games/Tower_Block_Game/README.md new file mode 100644 index 0000000000..d3e8dcc7a9 --- /dev/null +++ b/Games/Tower_Block_Game/README.md @@ -0,0 +1,46 @@ +# **Tower Block Game** + +--- + +
+ +## **Description 📃** + +- The Tower Block Game is an engaging and fun stacking game where players aim to stack blocks as high as possible without missing. The game uses 3D graphics and smooth animations to create an immersive experience. + +## **Functionalities 🎮** + +- Start a new game by clicking the "Start" button or pressing the spacebar. +- Stack blocks by clicking or pressing the spacebar. +- The game ends if a block is missed. +- View your current score during the game. +- Restart the game after it ends by clicking or pressing the spacebar. + +
+ +## **How to play? 🕹ī¸** + +1. Open the game in your web browser. +2. Click the "Start" button or press the spacebar to begin. +3. As the block moves, click or press the spacebar to place it. +4. Try to align the blocks as closely as possible. +5. The game ends if a block is missed. +6. Click or press the spacebar to restart the game. + +
+ +## **Screenshots 📸** +
+ +![Tower_Block_Game](https://github.com/Saipradyumnagoud/GameZone/assets/143107589/955917b4-98e7-43c9-833d-96683546d58a) + + + +
+ +## **Working video 📹** + +https://github.com/Saipradyumnagoud/GameZone/assets/143107589/e0a6612d-2917-42a8-8a10-f1fbeddbf4ea + + + From 53b610e01c0a051826f2d43424cbd84631e0bead Mon Sep 17 00:00:00 2001 From: Sai pradyumna Goud Chiragoni <143107589+Saipradyumnagoud@users.noreply.github.com> Date: Tue, 11 Jun 2024 12:37:15 +0530 Subject: [PATCH 4/4] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7f3cfcba54..78bf1cda3b 100644 --- a/README.md +++ b/README.md @@ -341,7 +341,7 @@ This repository also provides one such platforms where contributers come over an | [Intellect Quest](https://github.com/Will2Jacks/GameZoneForked/tree/Task/Games/Intellect_Quest) | | [Taash_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Taash_Game) | | [Number_Guessing_Game](https://github.com/kunjgit/GameZone/tree/main/Games/Number_Guessing_Game) | - +| [Tower_Block_Game](https://github.com/Saipradyumnagoud/GameZone/tree/main/Games/Tower_Block_Game)|
@@ -404,4 +404,4 @@ Terms and conditions for use, reproduction and distribution are under the [Apach
-

Back to top

\ No newline at end of file +

Back to top