java 安卓 studio游戏开发
我在做游戏。在游戏中,下面列出了一个名为movement()的方法,可以向下移动一个圆。我希望当圆tbc的y值大于yc的y值时,游戏运行gamelost()方法。所以基本上,一旦tbc从手机屏幕的顶部滑过yc,游戏就会运行gamelost()方法
我尝试在movement()之后将if语句放在main方法中;即使在movement()方法中,因为这两个游戏都没有说游戏结束。。。相反,圆圈只是从屏幕顶部下降到底部,然后消失。我做错什么了吗。有人能帮我吗
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
onCreateNew();
play.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
onPlayClick();
getColor();
movement();
}
});
protected void movement(){
final int delay = delay();
h.postDelayed(new Runnable() {
public void run() {
tgc.setY(tgc.getY() + 8);
tbc.setY(tbc.getY() + 8);
trc.setY(trc.getY() + 8);
tyc.setY(tyc.getY() + 8);
h.postDelayed(this, delay);
}
},delay);
if (tbc.getY() > yc.getY()){
gameLost();
} }
}
# 1 楼答案
欢迎使用异步编程
PostDelayed正在启动异步线程。所以检查gameLost的代码应该在新的Runnable中