我有这个代码用于重力模拟,玩家可以在鼠标位置按住鼠标点击创建行星(按住鼠标的时间越长,它就越大),最多100个行星。
但我的问题是,行星是成功创造的,但没有显示出来。
代码:
ASUS Memo Pad 7 5.0 Built-in Explorer Suite Built-in Explorer Test
LG Nexus 5X 6.0 Built-in Explorer Suite Built-in Explorer Test
Motorola Nexus 6 5.0 Built-in Explorer Suite Built-in Explorer Test
LG V10 (T-Mobile) 5.1.1 Built-in Explorer Suite Built-in Explorer Test
Motorola Moto G - 3rd Gen 5.1.1 Built-in Explorer Suite Built-in Explorer Test
Motorola Moto G - 2nd Gen 6.0 Built-in Explorer Suite Built-in Explorer Test
Motorola DROID Turbo (Verizon) 5.1 Built-in Explorer Suite Built-in Explorer Test
Dell Venue 8 7840 5.1 Built-in Explorer Suite Built-in Explorer Test
LG G3 (AT&T) 5.0.1 Built-in Explorer Suite Built-in Explorer Test
LG V10 (AT&T) 5.1.1 Built-in Explorer Suite Built-in Explorer Test
LG Nexus 5 6.0 Built-in Explorer Suite Built-in Explorer Test
ASUS Nexus 7 - 2nd Gen (WiFi) 5.0.1 Built-in Explorer Suite Built-in Explorer Test
Huawei Nexus 6P 6.0 Built-in Explorer Suite Built-in Explorer Test
HTC One M9 (Verizon) 5.0.2 Built-in Explorer Suite Built-in Explorer Test
感谢您的帮助。
答案 0 :(得分:4)
在for-each循环中,您要为局部变量Planet
分配一个新的planeti
(for-each循环的本地变量,之后丢弃),所以这没用。
您应该使用for
循环替换此循环,以便将Planet
分配给数组的当前索引。
所以替换这个循环:
for (Planet planeti:planets) {
if (planeti == null) {
planeti=new Planet(mouse[0],mouse[1],w,0,0);
System.out.println("Planet succesfully appended");
System.out.println(Arrays.toString(new float[] {planeti.x,planeti.y,planeti.w}));
break;
}
}
有了这个循环:
for (int i=0;i<planets.length;i++) {
Planet currentPlanet = planets[i];
if (currentPlanet == null) {
Planet newPlanet = new Planet(mouse[0],mouse[1],w,0,0);
planets[i] = newPlanet;
System.out.println("Planet succesfully appended");
System.out.println(Arrays.toString(new float[] {newPlanet.x,newPlanet.y,newPlanet.w}));
break;
}
}