Эй Я пытаюсь создать инкрементную игру и застрял. Вы нажимаете одну кнопку и получаете валюту, которая называется «Evos». С помощью этих «Evos» вы можете купить рассказчика, который начнет генерировать «Evos» самостоятельно.JQuery change variable/cost после нажатия
это код:
$(document).ready(function() {
"use strict";
var evoAmount = 0;
var storytellerAmount = 0;
var evoIncrement = 1;
var storyteller = {
Amount: 0,
Cost: 10,
Increment: 1
};
var tick = 1000;
var runstoryteller = setInterval(function() {
evoAmount = evoAmount + (storyteller.Increment * storyteller.Amount);
updateValues();
}, tick);
function updateValues(){
$('#evoAmount').html(evoAmount);
$('#storytellerAmount').html(storyteller.Amount);
}
/* Buy storytellers */
$('#storytellerBuy').click(function() {
if (evoAmount >= storyteller.Cost) {
evoAmount = evoAmount - storyteller.Cost;
storyteller.Amount++;
\t \t storyteller.Cost = (storyteller.Cost/100) * 20;
updateValues();
}
});
$('#click').click(function(){
\t evoAmount = evoAmount + evoIncrement;
\t document.getElementById("evoAmount").innerHTML = evoAmount;
\t \t
});
});
<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="https://bootswatch.com/slate/bootstrap.min.css">
<link rel="stylesheet" href="style.css">
<meta charset="utf-8">
<title>Evo-Clicker v1.0.0</title>
</head>
<body>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="js/click.js"></script>
<div class="main">
<button id="click" class="btn btn-default">Click</button>
<span id="evoAmount">0</span> EVOs <br><br>
<button id="storytellerBuy" class="btn btn-danger">Buy Storyteller</button><span id ="storytellerAmount">0</span> Storytellers
</div>
</body>
</html>
В принципе я могу купить первый рассказчик за 10 Evos. Но я хочу увеличить стоимость каждого купленного рассказчика на 20%. Но если я изменю код, он либо перейдет в отрицательный «Evos», либо в этом примере вам нужно заплатить только один раз, а затем бесплатно загрузить рассказчиков.
/* Buy storytellers */
$('#storytellerBuy').click(function() {
if (evoAmount >= storyteller.Cost) {
evoAmount = evoAmount - storyteller.Cost;
storyteller.Amount++;
updateValues();
}
});
Это работает, но остается неизменным. (Что я хочу, чтобы увеличить на 20% каждый раз)
Вы используете этот кусок кода для увеличения стоимости? рассказчик.Cost = (рассказчик.Cost/100) * 20; Если это так, это присваивает стоимость в размере 20% от текущей стоимости. Я думаю, что вам нужен рассказчик.Cost = storyteller.Cost + (storyteller.Cost * 0.2) –