我正在尝试制作神奇宝贝类型的游戏来测试我的新手编码技巧。但是我遇到了一些问题。
如果我按原样运行程序,我会得到一个弹出2次攻击的窗口(Tackle和Thunder Shock)。点击一次即可解决问题,但需要点击Thunder Shock两次;我猜这是因为pikaAtkType()
同时用于if。
我需要将方法中的“拾取”字符串与消息框进行比较,以使其正常工作。
我的问题是,我如何从pikaAtkType()
方法访问“pick”并将其放入if语句中,这样我就可以比较消息框输入,而不必按两次“OK”来进行Thunder Shock。 (我想以一种简单的方式做到这一点;我不是最好的编码。)
if (Encounter().equals("Attack")) {
if (pikaAtkType().equals("Tackle")) {
pikaDMG = 3;
} else if (pikaAtkType().equals("Thunder Shock")) {
pikaDMG = 4;
}
}
方法pikaAtkType()
(请记住这些只是代码的一部分):
static String pikaAtkType() {
String[] choices = {"Tackle", "Thunder Shock", "", ""};
String picked = (String)JOptionPane.showInputDialog(
null,
"Select Attack: ",
"Attack!",
JOptionPane.QUESTION_MESSAGE,
null,
choices,
choices[0]);
return picked;
}
答案 0 :(得分:3)
如果我理解你的问题,一个解决方案是获得"攻击"一次并将其存储在局部变量中。像,
if (Encounter ().equals ("Attack"))
{
String attack = pikaAtkType ();
if (attack.equals ("Tackle"))
{
pikaDMG = 3;
}
else if (attack.equals ("Thunder Shock"))
{
pikaDMG = 4;
}
答案 1 :(得分:0)
您可以在班级中创建一个等于拾取的字段
public class Pokemon {
String picked = "";
static void pikaAtkType ()
{
String[] choices = {"Tackle", "Thunder Shock", "", ""};
String picked = (String) JOptionPane.showInputDialog (null, "Select Attack: ", "Attack!", JOptionPane.QUESTION_MESSAGE, null, choices, choices [0]);
this.picked = picked;
}
}
然后你就去:
if (Encounter ().equals ("Attack")) {
pickAtkType();
if (picked.equals ("Tackle"))
{
pikaDMG = 3;
}
else if (picked.equals ("Thunder Shock"))
{
pikaDMG = 4;
}