2015-08-25 2 views
0

Эй Я пытаюсь создать инкрементную игру и застрял. Вы нажимаете одну кнопку и получаете валюту, которая называется «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% каждый раз)

+0

Вы используете этот кусок кода для увеличения стоимости? рассказчик.Cost = (рассказчик.Cost/100) * 20; Если это так, это присваивает стоимость в размере 20% от текущей стоимости. Я думаю, что вам нужен рассказчик.Cost = storyteller.Cost + (storyteller.Cost * 0.2) –

ответ

0

Вы должны заменить расчет стоимости

это право один storyteller.Cost = (storyteller.Cost * 1,2);

+0

Спасибо :) Это исправлено, но у вас есть идея, почему я иногда получаю такие значения, как «6.000000000004 Evos»? – Nexitis

+0

Если вам нужно целое число, вы должны округлить результат: 'storyteller.Cost = Math.round (storyteller.Cost * 1.2);' – Nickthename