我正在用AndroidStudio开发一个空间入侵者(没有Libgdx,游戏.)只使用Java和XML我有个问题..。我希望你能帮我。
首先,这是我的。

正如你所看到的,在RelativeLayout的底部你可以找到一艘宇宙飞船和两个按钮(一个在左边,另一个在右边)。按钮是看不见的。左边的按钮有"control_izquierda“作为id,右边的按钮是"control_derecha”。
当你按左键时,宇宙飞船向右移动,当你按右键时,飞船向左移动(这是完美的)。
我的问题是在按下其中一个按钮时移动飞船(,当我按下按钮时,飞船应该移动)。我尝试过不同的方法来尝试,但我找不到正确的解决方案。
这是我的java代码
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void actualizaPosicion(View v) {
switch (v.getId()) {
case R.id.control_derecha:
findViewById(R.id.nave).setX(findViewById(R.id.nave).getX() - 30);
break;
case R.id.control_izquierda:
findViewById(R.id.nave).setX(findViewById(R.id.nave).getX() + 30);
break;
}
}
}当单击其中一个按钮时,我的XML调用了"actualizaPosicion“方法。此方法检测是否单击了右或左按钮,然后上传宇宙飞船位置( id为"nave"),我希望当按钮按住时,飞船移动,当按钮不再按下时,飞船停止。
我很感激你的帮助。
非常感谢!
发布于 2016-09-25 12:11:53
您需要的是一个处理动画单击此处查看api文档的动画师。
一旦您理解了基本流程,就只需创建一个具有不同值的xml文件(在您的例子中,转换为 )。因此,在单击java代码的按钮中,您可以简单地启动这个动画xml文件。
//示例xml
<set android:shareInterpolator="false">
<scale
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXScale="1.0"
android:toXScale="1.4"
android:fromYScale="1.0"
android:toYScale="0.6"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="false"
android:duration="700" />
<set android:interpolator="@android:anim/decelerate_interpolator">
<scale
android:fromXScale="1.4"
android:toXScale="0.0"
android:fromYScale="0.6"
android:toYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="700"
android:duration="400"
android:fillBefore="false" />
<rotate
android:fromDegrees="0"
android:toDegrees="-45"
android:toYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="700"
android:duration="400" />
</set>
</set>//示例java代码用于使用
ImageView spaceshipImage = (ImageView) findViewById(R.id.spaceshipImage);
Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
spaceshipImage.startAnimation(hyperspaceJumpAnimation);希望这能有所帮助。如果它对你有什么改变,请告诉我。
编辑:我从评论中了解到,您正在寻找一个更复杂的解决方案,该解决方案涉及创建游戏,而不仅仅是简单的动画。
因此,我想与你们分享一个资源,这肯定会帮助你们解决这个和未来的项目。这里不可能用答案来解释游戏发展的各个方面。
点击这里获得详细的android空间游戏教程。
https://stackoverflow.com/questions/39686439
复制相似问题