我有一个按钮可以进入游戏模式。所有按钮都会启动相同的活动,但规则和物理会根据您触摸的内容而改变。
我想跟踪按下的按钮,以便我知道人们是否选择了经典模式或训练模式,并相应地设置规则。我该怎么做?
以下是我从菜单中开始游戏模式的方法:
MenuElement classic = mElements.get(0);
MenuElement training = mElements.get(1);
if(touchX > classic.mX && touchX < classic.mX + classic.mBitmap.getWidth()
&& touchY > classic.mY && touchY < classic.mY + classic.mBitmap.getHeight())
{
aux = "Starting game";
Context context = com.Juggle2.Menu.this.getContext();
Intent intent = new Intent(context, StartGame.class);
intent.putExtra("rule", 1);
context.startActivity(intent);
}
if(touchX > training.mX && touchX < training.mX + classic.mBitmap.getWidth()
&& touchY > training.mY && touchY < training.mY + training.mBitmap.getHeight())
{
aux = "Starting training";
Context context = com.Juggle2.Menu.this.getContext();
Intent intent = new Intent(context, StartGame.class);
intent.putExtra("rule", 2);
context.startActivity(intent);
}
这就是它的所在:
public class StartGame extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(new Panel (this)); //Start the game
}
}
现在我需要我的Panel类可以访问这些附加功能,这是一个SurfaceView。
哦,我明白了:
我找到了一种方法,可以在更少的步骤中完成我想要的工作
public class Global{
public static int rules = 0;
}
现在我可以通过键入Global.rules
事后看来,这似乎很简单。
答案 0 :(得分:2)
您可以为开始活动的Intent
添加“额外”。
Intent intent = new Intent(context, StartGame.class);
intent.putExtra(String key, X value);
startActivity(intent);
然后,您可以通过以下方式在StartGame活动中获取这些额外内容:
Bundle extras = getIntent().getExtras();
X value = extras.getX(String key);
其中X是某种类型的数据(例如,String,int,long,double等)。
<强>更新强>
抱歉,我没有仔细阅读你的评论。这里有一些可能对你有用的东西:
public class StartGame extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
Bundle extras = getIntent().getExtras();
Panel mPanel = new Panel(this, extras);
setContentView(mPanel); //Start the game
}
}
并更改Panel构造函数以接受Bundle参数,因此您在初始化时具有这些值。让我知道它是如何工作的。
答案 1 :(得分:0)
你应该使用一个librairy来完成所有这些。否则你将不得不这样做 1)收集统计数据 2)将它们上传到你可以查看结果的地方,这部分可能很难自己做
但谷歌分析已经为您完成了这一切。也许其他人也...... 这是starter page。
此致 斯特凡
答案 2 :(得分:0)
我找到了一种方法,可以在更少的步骤中完成我想要的工作
public class Global{
public static int rules = 0;
}
现在我可以通过键入Global.rules