JAVA:使用数组定义屏幕上对象的X位置和移动
我在为一个简单的游戏编写代码时遇到了一个问题——我试图让一个数组在碰撞后确定一个物体在屏幕上的位置 代码在没有数组和循环的情况下运行良好,并且循环或数组都没有显示语法错误 有人看到问题了吗JAVA:使用数组定义屏幕上对象的X位置和移动,java,arrays,loops,Java,Arrays,Loops,我在为一个简单的游戏编写代码时遇到了一个问题——我试图让一个数组在碰撞后确定一个物体在屏幕上的位置 代码在没有数组和循环的情况下运行良好,并且循环或数组都没有显示语法错误 有人看到问题了吗 if (mBallSpeedY >0 || mBallSpeedY < 100) { if (nMinDistanceBetweenBallAndSmiley >= distanceBetweenBallAndSmiley) { float speedOfBall =
if (mBallSpeedY >0 || mBallSpeedY < 100) {
if (nMinDistanceBetweenBallAndSmiley >= distanceBetweenBallAndSmiley) {
float speedOfBall = (float) Math.sqrt(mBallSpeedX * mBallSpeedX + mBallSpeedY * mBallSpeedY);
mBallSpeedX = mBallX - mSmileyX;
mBallSpeedY = mBallY - mSmiley.getWidth() / 2;
float newSpeedOfReboundBall = (float) Math.sqrt(mBallSpeedX * mBallSpeedX + mBallSpeedY * mBallSpeedY);
mBallSpeedX = mBallSpeedX * speedOfBall / newSpeedOfReboundBall;
mBallSpeedY = mBallSpeedY * speedOfBall / newSpeedOfReboundBall;
updateScore(5);
int[] smileyXPositions = new int[15];
smileyXPositions[0] = (mCanvasWidth /10)*2;
smileyXPositions[1] = (mCanvasWidth /10)*3;
smileyXPositions[2] = (mCanvasWidth /10)*4;
smileyXPositions[3] = (mCanvasWidth /10)*5;
smileyXPositions[4] = (mCanvasWidth /10)*6;
smileyXPositions[5] = (mCanvasWidth /10)*7;
smileyXPositions[6] = (mCanvasWidth /10)*8;
smileyXPositions[7] = (mCanvasWidth /10)*9;
smileyXPositions[8] = (mCanvasWidth /10)*8;
smileyXPositions[9] = (mCanvasWidth /10)*7;
smileyXPositions[10] = (mCanvasWidth /10)*6;
smileyXPositions[11] = (mCanvasWidth /10)*5;
smileyXPositions[12] = (mCanvasWidth /10)*4;
smileyXPositions[13] = (mCanvasWidth /10)*3;
smileyXPositions[14] = (mCanvasWidth /10)*2;
smileyXPositions[15] = mCanvasWidth /10;
mSmileyX = smileyXPositions[0];
for (int i = 0; i < smileyXPositions.length; i++)
{
if(smileyXPositions[i]>15)
{
smileyXPositions[15] = smileyXPositions[i];
}
else if(smileyXPositions[i]<0)
{
smileyXPositions[0] = smileyXPositions[i];
}
}
}
if(mballspeeding>0 | | mballspeeding<100){
if(NmAllandSmiley之间的距离>=AllandSmiley之间的距离){
浮球速度=(浮球)数学.sqrt(mBallSpeedX*mBallSpeedX+mBallSpeedY*mBallSpeedY);
mBallSpeedX=mBallX-mSmileyX;
mBallSpeedY=mBallY-mSmiley.getWidth()/2;
float newSpeedOfReboundBall=(float)Math.sqrt(mBallSpeedX*mBallSpeedX+mBallSpeedY*mBallSpeedY);
mBallSpeedX=mBallSpeedX*球/新闻peedofball的速度;
mBallSpeedY=mBallSpeedY*speedOfBall/newspeedofreeboundball;
更新核心(5);
int[]smileyXPositions=新int[15];
smileyXPositions[0]=(mCanvasWidth/10)*2;
smileyXPositions[1]=(mCanvasWidth/10)*3;
smileyXPositions[2]=(mCanvasWidth/10)*4;
smileyXPositions[3]=(mCanvasWidth/10)*5;
smileyXPositions[4]=(mCanvasWidth/10)*6;
smileyXPositions[5]=(mCanvasWidth/10)*7;
smileyXPositions[6]=(mCanvasWidth/10)*8;
smileyXPositions[7]=(mCanvasWidth/10)*9;
smileyXPositions[8]=(mCanvasWidth/10)*8;
smileyXPositions[9]=(mCanvasWidth/10)*7;
smileyXPositions[10]=(mCanvasWidth/10)*6;
smileyXPositions[11]=(mCanvasWidth/10)*5;
smileyXPositions[12]=(mCanvasWidth/10)*4;
smileyXPositions[13]=(mCanvasWidth/10)*3;
smileyXPositions[14]=(mCanvasWidth/10)*2;
smileyXPositions[15]=mCanvasWidth/10;
mSmileyX=smileyXPositions[0];
for(int i=0;i15)
{
smileyXPositions[15]=smileyXPositions[i];
}
else if(smileyXPositions[i]如果数组的索引范围为0到15,则需要一个包含16个条目的数组:
int[] smileyXPositions = new int[16];
如果数组的索引范围为0到15,则需要一个包含16个条目的数组:
int[] smileyXPositions = new int[16];
请在问题中发布代码。请在问题中发布代码。线程“main”java.lang.ArrayIndexOutOfBoundsException:15 clearTest.main.main(main.java:23)
线程“main”java.lang.ArrayIndexOutOfBoundsException:15 clearTest.main.main(main.java:23)