I would like to use the following code in Android studio, instead of via a web browser. However, I am having trouble converting javascript into java. Particularly the first variable that defines several other variables below. I would appreciate assistance. This is the beginning of an idle game.
main.js
var gameData = { Points: 0, PointsPerClick: 1, PointsPerClickCost: 10 } const perClickUpgrade = document.getElementById("perClickUpgrade"); perClickUpgrade.addEventListener("click", function handleClick() { perClickUpgrade.textContent = "Upgrade Evolution Level (Currently Level " + gameData.PointsPerClick + ") Cost: " + gameData.PointsPerClickCost + " Points"; }); function Upgrade() { gameData.Points += gameData.PointsPerClick document.getElementById("EvolPoints").innerHTML = gameData.Points + " Evolution Points" } function BuyPointsPerClick() { if (gameData.Points >= gameData.PointsPerClickCost) { gameData.Points-= gameData.PointsPerClickCost gameData.PointsPerClick += 1 gameData.PointsPerClickCost *= 2 document.getElementById("EvolPoints").innerHTML = gameData.Points + " Evolution Points" document.getElementById("perClickUpgrade").innerHTML = "Upgrade Evol Level (Currently Level " + gameData.PointsPerClick + ") Cost: " + gameData.PointsPerClickCost + " Points" } var mainGameLoop = window.setInterval(function() { Upgrade() }, 1000) function LevelTen() { if (gameData.Points >= 10 ) { alert("This is an alert message box."); // display string message } } } function LevelTen() { if (gameData.PointsPerClick > 9 && gameData.PointsPerClick < 11) { alert("Your Creature Has Evolved to Level Ten!"); // display string message } }
index.html
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>Evolution Idle Game</title> <link rel="stylesheet" href="idlescreen.css"> </head> <body> <body style="background-color:rgb(0, 0, 0);" ></body> <p id="EvolPoints" class="evol-points">0 Evolution Points</p> <button onclick="Upgrade(), LevelTen()" style="background-color:#f14e4e" class="btn2">Click to Upgrade</button> <button onclick="BuyPointsPerClick(), LevelTen()" style="background-color:#f1bb4e" id="perClickUpgrade" class="btn2">Click to Start Automation</button> <script src="main.js" charset="utf-8" type="text/javascript"></script> <img src="./Pictures/bat.png" > </body> </html>
idlescreen.css
.evol-points { color: #ffffff } .btn2 {padding: 15px 25px; font-size: 24px; text-align: center; text-decoration: none; outline: none; color: #fff; cursor: pointer; background-color: #4CAF50; border: none; border-radius: 15px; box-shadow: 0 9px #999; } .btn2:hover {background-color: #3e8e41} .btn2:active { background-color: #3e8e41; box-shadow: 0 5px #666; transform: translateY(4px); }
Advertisement
Answer
Particularly the first variable that defines several other variables below. I would appreciate assistance.
One solution is to create a class named GameData
with publicly accessible static variables:
class GameData { public static int points = 0; public static int pointsPerClick = 1; public static int PointsPerClickCost = 10; }
Now you can access these variables using the dot notation: GameData.points
.
However, I should specify that this is not idiomatic Java. An idiomatic solution would create a class named GameData
and then instantiate objects of that class using the new
keyword.