How do you randomize Java strings?
所以我开始编写一个小游戏,需要'enemys'从两点产生。
继承我的敌人产卵代码;
1 2 3 4 5
| public void createEnemy(int enemy_count){
for(int i = 0; i < enemy_count; i++){
addEntity(new Enemy((200), -10, tex, this, game));
}
} |
你可以看到'(新的敌人((200)'是一个敌人会产生的点。另一个是450。
那么我如何在敌人每次被杀时产生的这两点之间交替?
********************编辑
1 2 3 4 5
| // For respawn enemy
if(y > (Game.HEIGHT * Game.SCALE)){
x = 450;
y = -10;
} |
好吧,我非常肯定我必须随机化它以及它的工作?想法? (x需要随机450或200)。
谢谢,
马克斯
-
这个问题如何涉及String的使用?
-
在我看来,您希望此代码在每次其他迭代时交替在200到450之间。 我没有看到随机化或字符串在哪里。
-
也许addEntity(new Enemy((Math.Random() > 0.5 ? 200 : 450), -10, tex, this, game));?
-
我甚至没有看到随机化的来源。替代!=随机化。
-
我在标题中看到String,但在发布的代码中没有String ..
-
这不涉及字符串或随机化。 它几乎不涉及Java。
-
感谢您的评论,我不确定天气是否将它们放入字符串中。 我必须仔细检查我的其余代码,而不是在这里。
如果要在每次其他迭代中交替使用200到450之间的值:
1
| addEntity(new Enemy((i % 2 == 1 ? 200 : 450), -10, tex, this, game)); |
这使用模运算符%来确定循环计数器i是奇数还是偶数,并使用三元运算符选择200或450。
如果你想伪随机地选择一个或另一个,你可以使用Math.Random(),因为@Chrisky在注释中阐述:
1
| addEntity (new Enemy ((Math. Random() > 0.5 ? 200 : 450), -10, tex, this, game )); |
编辑:您可以将相同的模式应用于您添加到问题中的第二个代码块。
1 2 3 4
| if (y > (Game. HEIGHT * Game. SCALE)) {
x = (Math. Random() > 0.5 ? 200 : 450);
y = -10;
} |
-
啊,好的,我有你。感谢您的评论,但我认为我必须将正在编辑的部分随机化以使其正常工作。
-
@ user3542953您可以使用相同的模式。请查看我编辑的答案,如果有帮助,请点击复选标记接受我的答案:)
-
很多东西,最后一件事,我将如何随意 - //对于速度控制私人速度=(3);选择1和1之间的数字8?
-
请参阅此问题,特别是第一个答案,以了解如何从Math.Random()中获取给定范围的数字:stackoverflow.com/questions/363681/…
-
非常感谢你帮助tgies!正如你可以告诉我新的java,但真的想为手机编写游戏!你有任何有用的学习材料吗?再次感谢帮助节省了我的时间,Max。
-
@ user3542953有趣的是,我实际上并不特别了解Java,所以我不我能给你的最好的建议就是不断提问并研究你感兴趣的项目,并让你尝试用这门语言做新事物。
如果你希望怪物每次都在一个随机的未确定位置产生,你应该生成一个随机值,在你的情况下你只有两个随机点,所以你想要0或1。
创建随机数(0或1)后,检查随机数的值,然后将其转换为250或400.这可以使用关联数组完成,或者(更简单)if else语句。
看到:
生成1到10个Java之间的随机数
此外,你应该知道没有真正随机的东西。有些人坚持称它为伪随机但我觉得有点迂腐。
随机选择一个位置:
1 2
| Random random = new Random(); // Somewhere at the top of your code
addEntity (new Enemy ((random. nextBoolean() ? 200 : 450), -10, tex, this, game )); |
交替位置,不依赖于循环计数器变量。如果你在循环之外产生敌人,这也很有用。 (例如,其他类型的敌人的其他循环。)
1 2
| bool flag = false; // Somewhere at the top of your method for spawning enemies.
addEntity(new Enemy((flag = !flag ? 200 : 450), -10, tex, this, game)); |