想象一下,我有一个基本实体类的游戏,一个不带参数的init方法.现在我有一个Wizard类,但我希望传递2个参数,比如速度和强度.在AS3中(我相信Java和C#)我将不被允许这样做 - 它是一个"不兼容的覆盖",因为方法签名将不匹配.现在我可以改为创建一个"initWizard"方法,但后来我遇到了每个类的init方法可能有不同名称的问题.
我需要在AS3,Java或C#中工作的解决方案.
假设我有4个按钮,我希望每个按钮都做不同的事情.我不想要一个大的switch语句,我根据按下的按钮做了不同的事情,我也不想为每个按钮点击一个单独的方法.命令模式是解决这个问题的好方法吗?
假设您有一个 2D 区域,并且想要在其中生成随机点,通过设置
x = random() * width
y = random() * height
Run Code Online (Sandbox Code Playgroud)
点是否聚集在该区域的中心周围?我记得读过一些东西说他们会,但我不太明白为什么,以及如何防止它。
许多初学程序员编写的东西if (myBoolean == true)相反,if (myBoolean)因为他们还没有掌握条件不需要包含比较,只需要一个布尔值.当我在twitter上注意到这一点时,有人建议我在JavaScript中可能有充分的理由这样做.在那儿?我们都知道JavaScript类型很奇怪,但谷歌在这个特定点上没有答案.
更新:似乎没有区别,但是会有所不同if (myBoolean === true).所以澄清一个问题 - 如果(myBoolean === true)或if(myBoolean),JavaScript中的最佳实践是什么.在现实世界的场景中,你会检查=== true一些你不知道的东西是布尔值吗?请回答这个后续问题:为什么在JavaScript中使用if(myBoolean === true)是一种好习惯?
这是怎么回事?!减法工作正常,直到达到0.1 - 0.1.我在使用nonoba.com API的visual c#2008中.
Console.WriteLine("hit! " + Users[targetNum].character.health + " : " + player.character.profile.attackPower);
Users[targetNum].character.health -= player.character.profile.attackPower;
Console.WriteLine("health! " + Users[targetNum].character.health);
Run Code Online (Sandbox Code Playgroud)
输出:
hit! 0.1 : 0.1
health! 1.490116E-08
Run Code Online (Sandbox Code Playgroud)
谢谢所有 - 我可能会使用十进制类型,因为我通常添加/减去漂亮的"圆"数字.现在我只想:
if (Users[targetNum].character.health <= 0.00001)
Run Code Online (Sandbox Code Playgroud)
顺便说一下,我知道这并不是c#中的"bug" - 我认为这可能是由于代码中的错误或者缺乏理解而导致的.
阅读完所有推荐的阅读后,我将得出结论,我的愚蠢是由于通常使用ActionScript Number类型,它可能有一个十进制而不是二进制浮点 - 无论如何,它永远不会给出这个输出.