【问题标题】:Making a payment system (Game) (Solution) [closed]制作支付系统(游戏)(解决方案)[关闭]
【发布时间】:2017-12-04 05:08:26
【问题描述】:

我正在尝试制作一个简单的“空闲”游戏,您可以在其中单击构建,然后获得现金,当您有足够的现金时,您可以购买自动构建或现金生成器等升级。

我需要它来获取我的现金 int cash = 0; 并检查它是否有正确的金额,我正在计算每个发电机的金额为 [发电机 x 15 = 支付] 但是购买第一台发电机免费,因为 [Generators[0] x 15 = 0],IE零乘以任何东西总是等于0,我怎样才能做到if (cash < pay)int pay = Hammers * 15;

【问题讨论】:

  • @Sinatr 请告诉我这是如何基于意见的,我遇到了问题,我解决了,我决定与其他人分享,请为我解释。
  • 我个人投票认为“太宽泛”,只是通过阅读标题。不幸的是,我不清楚你到底在解决什么问题,我也可以投票“不清楚”:“我一开始就将他们购买的物品的 int 设置为 0” - 什么@ 987654324@? “我需要确保他们有足够的钱来支付它” - 这只是一个条件,又名if。即使通过阅读答案,我也无法理解问题和提问的原因。顺便说一句,如果你能正确地提出问题,你最终可能会从其他人那里得到更好的解决方案。
  • @Sinatr 首先,我不需要其他解决方案,这行得通,如果我自己制作我为什么要别人的解决方案? (创建解决方案的自豪感令人欣喜若狂)至于问题,我将澄清它,正如您所知,它最初是一个回答问题的问题,但由于评论我将其拆分,我将编辑再次提问以澄清这一点。

标签: c# winforms if-statement int


【解决方案1】:

在一个名为 cookie clicker 的流行闲置游戏中,有“Cursor's”,它通过计时器为您提供自动生成的货币,但他们需要确保“Cu​​rsor's”的初始数量为 0,我在我的游戏,但它被称为“锤子”所以,这是解决方案。

int pay = hammers * 15 + 15;
if (hammers == 0)
{
    if (cash >= 15)
    {
        money.Text = cash; 
        hammers += 1;
        cash -= 15;
    }
    else if (cash <= 15)
    {
        notifyIcon1.BalloonTipText = "ERROR: You do not have enough cash to buy this!";
        notifyIcon1.ShowBalloonTip(1000);
     }
 }
 else if (Hammers >= 1)
 {
     if (cash < pay)
     {
         notifyIcon1.BalloonTipText = "Error: You do not have enough cash to buy this!"; notifyIcon1.ShowBalloonTip(1000);
     }
     else if (cash >= pay)
     {
         money.Text = cash;
         hammers += 1;
         cash -= pay;
     }
  }

享受吧!

【讨论】:

  • 如果hammers = 0 然后pay = 15,那么代码的else 部分仍然有效。此外,内部 if-else 块应仅使用 else,而不是 else if
  • @MichałTurczyn 我做的方式很好,所以我猜它只是偏好,不会影响游戏。
  • 它有效 :) 我毫不怀疑,这只是为了简化代码 :)
猜你喜欢
  • 2013-12-07
  • 2010-10-06
  • 2013-12-05
  • 1970-01-01
  • 1970-01-01
  • 2012-12-29
  • 2013-03-01
  • 2012-03-07
  • 1970-01-01
相关资源
最近更新 更多