感谢我在这个论坛上遇到的其他问题的帮助,我设法推进了我的项目,但又出现了另一个障碍.
我在libgdx for java中实现多个Screen时遇到了麻烦.我想知道如何实现多个屏幕(一个用于主菜单,一个用于播放,一个用于加载屏幕,......).
我应该如何构建我的屏幕类的示例或一些解释将非常有用.我尝试实现自己的屏幕管理器但是效果不是很好......还有一些指示我应该如何处理屏幕,因为每次从主菜单进入播放或选项菜单时创建屏幕都不是很好理念.非常感谢任何想法或代码示例或建议.
我现在拥有的是一些类别的游戏屏幕,当你渲染它们时,它们会在屏幕上绘制一些GUI,但是像后退按钮这样的功能不起作用,因为我不知道如何在它们之间建立链接.
互联网的人!
我一直在为学校做一个饮酒游戏计划.
//不是相关的信息,只是为了lulz://学校建议游戏,我没有;)这是游戏// http://sotallytober.com/games/verbal/mexican/
无论如何,我使用以下代码在JPanel中绘制了一个图像(它是一个扩展JPanel的类)
public class iconPanel extends JPanel {
ImageIcon image;
Image pic;
public iconPanel(String startScreenImage) {
image = new ImageIcon(startScreenImage);
pic = image.getImage();
this.setBackground(new Color(0, true));
}
@Override
public void paintComponent(Graphics g) {
//Paint background first
g.drawImage (pic, 0, 0, getWidth (), getHeight (), this);
}
Run Code Online (Sandbox Code Playgroud)
现在在我的另一个类中,我有布局和所有组件,我在我的JPanels上声明如下:
private JPanel pnDrinkPlayerBW;
Run Code Online (Sandbox Code Playgroud)
然后在名为MakeComponents的同一个类中的一个方法中,我将JPanel设置为:
pnDrinkPlayerBW = new iconPanel("img/glass.jpg");
pnDrinkPlayerBW.setPreferredSize(new Dimension(183,61));
Run Code Online (Sandbox Code Playgroud)
然后我将它添加到面板中,它必须来,并将该面板添加到方法makeLayout()中的框架上(我不认为它是有用的代码,所以如果你想看到它,请问我)
然后,如果按下按钮,我想将glass.jpg图像更改为另一个图像,例如beerGlass0.png,所以在另一个方法actionEvents()的actionlistener中我这样做:
pnDrinkPlayerBW = new iconPanel("img/beerGlass.png");
pnDrinkPlayerBW.setPreferredSize(new Dimension(183,61));
pnDrinkPlayerBW.repaint();
Run Code Online (Sandbox Code Playgroud)
我会把这个类的构造函数放在这里,就像人们需要它一样:
public SpelScreen(){
makeComponents();
makeLayout();
actionEvents();
} // note : this …Run Code Online (Sandbox Code Playgroud) 我有一个使用解析器的方法,解析器调用示例是:
SpecificClass ret = parser.parse(getOutputStream(),SpecificClass.class);
Run Code Online (Sandbox Code Playgroud)
请注意,返回类型与指定为paramether的返回类型相同.
现在,我想创建一个方法来执行此调用并返回我想要的特定类类型.例如:
public $$some construct I don't know$$ invokeParser(Class<?> c){
//... operations....
return parser.parse(getOutputStream(),c); //c works, I can pass it
}
Run Code Online (Sandbox Code Playgroud)
可能吗?
public class HelloWorld {
public static void main(String[] args) {
String s1="yes";
String s2="yes";
System.out.println("-------The result is-----"+ s1==s2);
System.out.println("-------The result is-----"+ (s1==s2));
}
}
Run Code Online (Sandbox Code Playgroud)
为什么上面的代码产生输出
"false"
-------结果是----- true
对于所有这些,我必须找出运行时间.
1.
for ( int i = 0; i < n; i+=2 )
sum++;
Run Code Online (Sandbox Code Playgroud)
2.
for ( int i = 1; i < n; i*=2 )
sum++
Run Code Online (Sandbox Code Playgroud)
3.
for ( int i = 0; i < n; i++ )
for ( int j = 0; j < n; j++ )
sum++;
Run Code Online (Sandbox Code Playgroud)
4.
for ( int i = 0; i < n; i++ )
sum++
for ( int j = 0; j < n; j++ )
sum++
// The above are …Run Code Online (Sandbox Code Playgroud) 我被要求覆盖一个实现新行为的方法,我已经制作了构造函数和方法.
private String name;
private boolean disease;
public Area(Position pos, String name, boolean disease) {
super(pos);
this.name = name;
this.disease = disease;
}
public String getName() {
return name;
}
Run Code Online (Sandbox Code Playgroud)
以及我必须覆盖的方法,以便在药物足够的情况下可以在一个区域停止疾病
public boolean hasDisease() {
return disease;
}
Run Code Online (Sandbox Code Playgroud)
我试过用
if (medicine = true) {
disease = false
}
return disease = true;
}
Run Code Online (Sandbox Code Playgroud)
但这导致其他测试失败.