北京限制牌照了,这政策让我蛋疼的不行,说点丧气话,一个欺负程序员的公司能坚持多少年,一个欺负老百姓的××能统治多少年。我觉得GWY有必要从程序员队伍里面选拔人才,太脑残了,想问题怎么就这么简单。牢骚发完了,代码解释搞起,那哥们发了代码和截图就跑了,赞他的分享精神。这里来解释下这段代码,顺便跟大家交流下关于Swing开发程序的心得,请多多指教。
先来看程序运行的情况,有个感性的认识。
图1初始化界面
接着如果点击Single Player 的话进入下一个界面:
图2 Single Player界面
好了先到这里,我们来看一些程序的代码结构:
图3 代码结构
这个代码的入口在包test下,如下图4,你不要告诉我不知道怎么运行,那我就蛋疼了。
图4 测试运行类TestGameCore.java
大家运行下就能看到本文开始的两个界面了,ok,大家应该有个感性认识了,那咱们开始介绍对应代码,首先是TestGameCore.java,先看入口main函数:
public static void main(String[] args) throws Exception {
1.if(args.length>0){Constant.IP = args[0];}
2.else{Constant.IP =netAddress.getLocalHost().getHostAddress();}
3.new TestGameCore().run();
}
前面的两行是得到本机IP地址,这里先不细介绍了,以后介绍关于网络部分的内容的时候我们再来做介绍。最后一行是TestGameCore().run(),这里创建了一个匿名对象并直接调用了TestGameCore类的run()方法,这个run方法是在TestGameCore的父类FullGameCore里定义的,接下来我们进入FullGameCore这个类的定义了,看看run方法里有什么,下面是它的代码:
public void run() {
try {
1. init();
2. gameLoop();
}
finally {
screen.restoreScreen();
lazilyExit();
}
}
从上面的代码,我们可以知道它接下来要运行init 函数与gameLoop函数,那么我们把这两个函数的代码粘贴过来:
///////////////////
public void init() {
screen = new ScreenManager();
DisplayMode displayMode=screen.findFirstCompatibleMode(POSSIBLE_MODES);
screen.setFullScreen(displayMode);
JFrame frame = screen.getFullScreenWindow();
frame.setFont(new Font("Dialog", Font.PLAIN, FONT_SIZE));
frame.setBackground(Color.white);
frame.setForeground(Color.white);
frame.setTitle("JStarCraft");
frame.setIconImage(ResourceManager.loadImage("title.png"));
isRunning = true;
frame.setCursor(Toolkit.getDefaultToolkit().createCustomCursor(
ResourceManager.loadImage("cur.png"), new Point(0, 0), "cur"));
NullRepaintManager.install();
frame.setLayout(null);
((JComponent) frame.getContentPane()).setOpaque(true);
}
这个函数主要完成初始化屏幕的工作,每行的代码的意思以后再详细解释,大家只需要知道当我们需要画画的时候需要画板和笔,这里的工作相当于给了我们一个画板,而且画板上有若干纸张。
下面的这个函数gameLoop完成什么功能呢,大家可以看到主体是一个while循环,这里大家就应该能知道这个函数就是按照一定的时间频率来刷新屏幕。
public void gameLoop() {
long startTime = System.currentTimeMillis();
long currTime = startTime;
while (isRunning) {
long elapsedTime =
System.currentTimeMillis() - currTime;
currTime += elapsedTime;
// update
update(elapsedTime);
// draw the screen
Graphics2D g = screen.getGraphics();
draw(g);
g.dispose();
screen.update();
// System.out.println(elapsedTime);
// don't take a nap! run as fast as possible
try {
Thread.sleep(5);
}
catch (InterruptedException ex) { }
}
}
未完
分享到:
相关推荐
这些标签揭示了项目的关键要素:使用JavaScript语言,涉及源代码开发,以及与经典游戏“星际争霸”相关。对于学习JavaScript的开发者来说,这是一个极好的学习资源,可以深入了解游戏开发中的事件处理、对象和类的...
《星际争霸游戏插件for LeadBBS 3.14》是一款专为LeadBBS 3.14论坛系统设计的游戏插件,旨在为论坛用户提供更丰富的互动体验,特别是对于热爱星际争霸游戏的用户群体。这款插件由sunnycbd.com开发并提供,其主要功能...
【标题】:“JAVA版Swing星际争霸游戏源代码”是一个基于Java编程语言,利用Swing图形用户界面库开发的星际争霸类游戏项目。这个源代码提供了实现策略游戏基本功能的实例,适合Java初学者和爱好者学习游戏开发或者...
在这个“flash版星际争霸”中,开发者运用ActionScript编写代码,实现了游戏的逻辑控制,包括单位的移动、寻径算法以及建筑的建造等基础功能。 单位寻径移动是游戏中的关键技术之一。在Flash中,开发者可能使用了A*...
《用Java实现的星际争霸:探索游戏开发与编程深度》 在编程的世界里,Java以其跨平台、面向对象和丰富的库支持,成为了开发各种类型应用的热门选择,其中包括游戏开发。本项目“用Java做的星际争霸”就是这样一个...
【Java山寨版星际争霸Demo】是一个基于Java编程语言开发的3D游戏项目,它尝试复刻经典游戏《星际争霸》的一些核心玩法和视觉效果。这个Demo不仅提供了游戏体验,还包含源代码,使得开发者和学习者能够深入理解游戏...
5. **游戏逻辑**:星际争霸游戏包含了多种单位、资源管理、策略选择等复杂元素,这些都需要通过JavaScript编写严谨的逻辑代码来实现。例如,单位的移动、攻击逻辑,资源的采集和消耗,以及玩家间的交互规则等。 6. ...
【纯js版星际争霸】是一款基于JavaScript编程语言开发的网页游戏,它再现了经典即时战略游戏《星际争霸》的部分玩法和界面。对于热爱JavaScript技术、热衷于游戏开发的程序员来说,这是一个绝佳的学习和娱乐资源。 ...
《基于Java Swing的星际争霸游戏源代码解析》 在编程世界中,Java作为一种广泛应用的编程语言,因其跨平台性、面向对象以及丰富的类库而备受青睐。本篇将深入探讨一个特殊的项目——基于Java Swing的星际争霸游戏源...
《基于Java Swing的星际争霸游戏源代码解析》 在编程世界中,Java作为一种跨平台、面向对象的语言,常被用于开发各种复杂应用,包括游戏。本篇将深度探讨一款基于Java Swing实现的星际争霸游戏源代码,帮助读者理解...
**JavaScript星际争霸** 是一个基于Web的在线游戏项目,它实现了经典的即时战略游戏《星际争霸》的网络版。这个项目利用了JavaScript的强大功能,将游戏的逻辑、渲染和网络通信集成到浏览器环境中,使得玩家可以在...
在这个"星际争霸-少儿编程scratch项目源代码文件案例素材.zip"压缩包中,包含了一个名为"星际争霸.sb2"的文件。这是一个 Scratch 项目的源代码文件,可以用Scratch软件打开并查看或编辑。让我们详细探讨一下这个项目...
这个压缩包包含了一个JavaScript实现的星际争霸模拟器,代码带有中文注释,方便理解与学习。 JavaScript是一种广泛应用于网页开发的脚本语言,它可以实现网页的动态交互效果。在这个项目中,JavaScript不仅用于处理...
《基于Java Swing的星际争霸游戏源代码解析》 在编程世界中,Java作为一种跨平台、面向对象的语言,常被用于开发...总的来说,这个基于Java Swing的星际争霸游戏源代码是学习和研究Java GUI编程及游戏开发的宝贵资源。
"Bo-Blog 星际争霸2" 是一个以星际争霸2为主题的博客模板,适用于喜欢这款经典即时战略游戏的用户。这个模板可能包含了丰富的星际争霸2元素,如游戏截图、角色图标、比赛回顾等内容,旨在为玩家提供一个展示游戏热情...
《星际争霸》是一款深受全球玩家喜爱的经典即时战略游戏,而将其与少儿编程相结合,通过Scratch项目源代码的形式,为孩子们提供了一种寓教于乐的学习方式。Scratch是麻省理工学院(MIT)媒体实验室“终身幼儿园团队...
【标题】"js 版星际争霸"所涉及的知识点主要集中在JavaScript编程语言上,这是一个使用JavaScript实现的在线游戏,可能是对经典游戏《星际争霸》的一种致敬或者复刻。JavaScript是一种广泛应用于网页和互联网应用...
通过学习和理解这个"Java 2D的星际争霸"项目,开发者不仅可以掌握Java 2D图形编程的基本技巧,还可以深入了解游戏开发流程,这对于希望进入游戏行业的Java程序员来说是一次宝贵的实践。同时,这个项目也鼓励大家探索...
在本项目中,我们主要探讨的是使用JavaScript进行网页RTS(Real-Time Strategy)游戏的开发,以仿造经典游戏《星际争霸》为目标。这个压缩包包含了一系列必要的资源文件,如图像资源、HTML索引文件以及JavaScript...
通过学习和理解《在线星际争霸》的源码,开发者可以掌握到JavaScript游戏开发的基本流程和技术,从而进一步提升自己的编程技能。此外,这个游戏还可能涉及CSS3用于样式和布局,以及可能的一些库或框架(如Three.js...