我在java中制作网页游戏,每次遇到图形用户界面设计时都会遇到麻烦,通常我在查看其他代码并复制大部分设计,而且我无法确定应该采用哪种设计使用。我使用Applet,Canvas,JFrame。我需要的是在不同游戏之间切换的主循环和绘制功能。那么我应该使用什么类,什么设计,哪个更好,为什么,可能链接到有用的教程和示例......请解释您的建议。谢谢。网页小程序游戏设计
回答
如果您希望一些代码来剖析,你应该检查出Killer Game Programming in Java
这是一本好书,即使它现在使用旧库。几年前我买了它。如果你不喜欢买它,你仍然可以从网站
下载所有的源代码,你可以很容易地抽象掉使用一个applet或Java Web Start的之间的选择。如果做出选择,我会选择使用JWS,纯粹是因为我发现设置开发环境进行调试比较容易。
这两个环节演示了如何使用的JFrame v帆布:
我会使用包含JPanel的JFrame开发您的应用程序。
当您准备好上网时,您可以使用java web start启动您的JFrame。
我使用了Sun的java教程,它们非常有效。
- Applet(或JApplet)嵌入在网页中,因此只有浏览器给出的空间。只要页面显示,它就会保持在那里。
- 一个适当的(J)框架是它自己的窗口,从而可以大如窗口系统(和屏幕尺寸)让 - 它可以在不关闭浏览器页面(和它的小程序)关闭。
这是主要的区别。您可以简单地在自己的Canvas(AWT)或JPanel(Swing)中绘制图形,并将其放入(J)Applet或(J)Frame中,从而将两者之间的差异抽象出来,直到您准备好决定。
你可以写一个包装类,使您的游戏无论是作为一个applet(JApplet的)或基于JFrame的应用程序运行。
然后我会写上添加为无论是JApplet的或JFrame的孩子一个JPanel所有特定游戏的代码。您可以使用与之前使用Canvas完全相同的方式使用JPanel。
示例代码如下:
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class AppletApp extends JApplet {
public void init() {
// do any applet-specific initialisation here
getContentPane().add(new AppPanel());
}
private static final class AppPanel extends JPanel {
public AppPanel() {
// do any common initialisation here
add(new JButton("Hello World!"));
}
}
public static void main(String[] args) {
// do any frame-specific initialisation here
JFrame f=new JFrame("Frame");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
AppPanel appPanel=new AppPanel();
f.getContentPane().add(appPanel);
f.pack();
f.setVisible(true);
}
}
显然,这仅仅是一个玩具的例子 - 通常你会想你的AppPanel出分隔成一个单独的类文件等.....
像保罗Ebermann说,开发自己的画布或任何其他组件吨显示是最好的方法(根据我的意见)。
您选择哪个组件也取决于您选择的库。如果你只开发使用Java2D标准的Java组件就够了。如果您切换到LWJGL,JOGL或其他库,他们通常会提供自己的组件。
尤其JOGL还提供了一种实现游戏循环的特定方式,因为它是由一个称为Animator的线程驱动的。如果你想让你的设计与JOGL兼容,你必须让你的游戏循环兼容这个线程。
- 1. 程序/游戏设计工作流程
- 2. 游戏设计的协程?
- 3. 小蟒蛇游戏程序
- 4. Java小程序游戏
- 5. 一个小游戏的类设计
- 6. 游戏服务器网关设计
- 7. Java游戏设计课程加载
- 8. 吃豆子游戏课程设计
- 9. iphone多人游戏设计
- 10. 纸牌游戏设计
- 11. 设置游戏计时器
- 12. 纸牌游戏设计
- 13. Cocos2D游戏元素设计
- 14. 游戏结构设计
- 15. 卡片游戏设计
- 16. Libgdx资产游戏设计
- 17. 设计游戏数据库
- 18. 设计一个游戏C++
- 19. 游戏界面设计
- 20. 贪吃蛇游戏设计
- 21. Java游戏对象设计
- 22. AI设计纸牌游戏
- 23. 网页设计流程:缩小?
- 24. 简单的小程序游戏错误
- 25. 单页网页应用程序设计
- 26. 从游戏应用程序访问SSL安全的网页
- 27. 纸牌游戏计划:设计
- 28. C++/OpenGL国际象棋游戏程序设计建议
- 29. 哪个应用程序用于iPhone游戏/关卡设计
- 30. iPhone网络游戏编程
http://stackoverflow.com/tags/java-web-start/info –
为什么不是applet或canvas?你能显示一些链接吗? – Vladp