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)。
谢谢,
马克斯
如果要在每次其他迭代中交替使用200到450之间的值:
1 | addEntity(new Enemy((i % 2 == 1 ? 200 : 450), -10, tex, this, game)); |
这使用模运算符
如果你想伪随机地选择一个或另一个,你可以使用
编辑:您可以将相同的模式应用于您添加到问题中的第二个代码块。
如果你希望怪物每次都在一个随机的未确定位置产生,你应该生成一个随机值,在你的情况下你只有两个随机点,所以你想要0或1。
创建随机数(0或1)后,检查随机数的值,然后将其转换为250或400.这可以使用关联数组完成,或者(更简单)if else语句。
看到:
生成1到10个Java之间的随机数
此外,你应该知道没有真正随机的东西。有些人坚持称它为伪随机但我觉得有点迂腐。
随机选择一个位置:
1 2 |
交替位置,不依赖于循环计数器变量。如果你在循环之外产生敌人,这也很有用。 (例如,其他类型的敌人的其他循环。)
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)); |