#javascript #html #math #separator
#javascript #HTML #математика #разделитель
Вопрос:
Я искал это в Google, но нашел сложные решения, поэтому я пришел сюда, чтобы спросить, как я могу это сделать. Я делаю инкрементную игру и хочу начать с основ: добыча золота и покупка. Теперь я перехожу к следующему шагу в разработке этой игры, и мне действительно нужна помощь
HTML
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Gold Miner</title>
</head>
<body>
<h2 id="goldMined">0 Gold Mined</h2>
<br />
<br />
<button onclick="buyGoldPerClick()" id="perClickUpgrade">Get More Money. Cost: 10 Gold</button>
<br />
<br />
<button onclick="Reset()">Reset Game</button>
<script src="main.js" charset="utf-8" type="text/javascript"></script>
</body>
</html>
JavaScript
var gameData = {
gold: 0,
goldPerClick: 0.01,
goldPerClickCost: 10,
tickReduction: 1000,
tickReductionCost: 100
}
function mineGold() {
gameData.gold = gameData.goldPerClick
document.getElementById("goldMined").innerHTML = gameData.gold.toFixed(0).toLocaleString('en') " Gold Mined"
document.getElementById("perClickUpgrade").innerHTML = "Buy Pickaxe. Cost: " gameData.goldPerClickCost.toFixed(0).toLocaleString('en') " Gold"
}
function buyGoldPerClick() {
if (gameData.gold >= gameData.goldPerClickCost) {
gameData.gold -= gameData.goldPerClickCost
gameData.goldPerClick *= 2
gameData.goldPerClickCost *= 3
document.getElementById("goldMined").innerHTML = gameData.gold.toLocaleString('en') " Gold Mined"
document.getElementById("perClickUpgrade").innerHTML = "Buy Pickaxe. Cost: " gameData.goldPerClickCost.toLocaleString('en') " Gold"
}
}
function Reset() {
gameData.gold = 0
gameData.goldPerClick = 0.01
gameData.goldPerClickCost = 10
}
var mainGameLoop = window.setInterval(function () {
mineGold()
}, 10)
var saveGameLoop = window.setInterval(function () {
localStorage.setItem("goldMinerSave", JSON.stringify(gameData))
}, 1)
var savegame = JSON.parse(localStorage.getItem("goldMinerSave"))
if (savegame !== null) {
gameData = savegame
}
Любая помощь мне очень помогает, так как я новичок в программировании на JavaScript и HTML! Спасибо, что прочитали мой пост!
Комментарии:
1. В чем ваш вопрос? Вы не задаете ни одного
2. Как я могу добавить разделитель тысяч в эти числа?
3. В каких числах? Пожалуйста, постарайтесь быть конкретным и сузить проблему.
4. Я пытаюсь получить разделитель тысяч в количестве золота и цене.
Ответ №1:
Вы можете использовать функцию NumberFormat() из Intl API, доступного в Javascript. (нажмите на ссылку для получения документации).
-
Первым параметром функции Intl.NumberFormat() является язык, если вы хотите, чтобы он был универсальным, просто передайте ‘en-US’. Но если вы также можете передать в navigator.язык, если вы хотите просто взять язык из браузера.
-
Вторым параметром этой функции является объект options . Теперь, в этом объекте options, я передал maximumSignificantDigits и установил для него значение 3. Вы можете изменить это в соответствии с вашими требованиями. У вас также есть другие варианты, которые вы можете передать, просто проверьте ссылку, которую я предоставил выше.
-
Наконец, вы будете вызывать функцию format() и передавать свой gold в качестве параметра, и это в целом вернет вам форматированное значение с 3 максимальными значащими цифрами.
const gold = 1000000;
const formattedGold = Intl.NumberFormat('en-US', { maximumSignificantDigits: 3 }).format(gold);
//Printing output to console
console.log(formattedGold);