资源简介
非常有价值的Java游戏源码(本鹏保证在此前无人发过,而且原本都是非商用的),包含了战棋,弹幕,即时战略,射击等多种游戏类型。比如以东方系列人物为主角的战棋类游戏,原本为Applet开发的东方战棋Demo示例(关卡不完整,目前原作者采用C/C++重制了该游戏(日本有售,梦幻模拟战风格),Java版已废弃(2010年即终止开发))。不过Applet版采用“蜂格式”地图,以斜45度角进行角色战斗,内置三关。加上该游戏程序结构严谨,即使被原作者淘汰,也同样非常值得学习研究(有较大的移植重用空间)。
而其中DreadMaze2的源码可以生成任意大小的随机迷宫,也附带有自走未知大小迷宫的功能,还有一个简单的游戏模式,可以在随机迷宫中打怪。Warcraft_Remake这个游戏也非常有参考价值,其完整模拟了《魔兽争霸一》的战场功能,从AI战斗到建筑物升级与修复等等无一不包。至于SRPGWar这个工程中的源码虽仅有一关,却属于比较罕见的即时战斗的SRPG,有佣兵系统,也有多兵种指挥,只是结构比较混乱,较难重用。
代码片段和文件信息
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3)
// Source File Name: AnimationSet.java
package mm;
import java.awt.image.BufferedImage;
import java.io.PrintStream;
import java.util.*;
// Referenced classes of package mm:
// ImageManager Globals SoundManager
public class AnimationSet
{
public static class Animation
{
public BufferedImage getCurrentImage()
{
return ImageManager.getImage((new StringBuilder(String.valueOf(prefix))).append(currentframe).append(“.png“).toString());
}
public void advance()
{
int now = Globals.getCurrentTurn();
if(now - lastAdvance >= delay && currentframe < nframes - 1)
{
currentframe++;
lastAdvance = now;
if(soundPrefix.length() > 0)
SoundManager.playSound((new StringBuilder(String.valueOf(soundPrefix))).append(currentframe).append(“.wav“).toString());
}
}
public boolean isDone()
{
int now = Globals.getCurrentTurn();
return now - lastAdvance >= Math.max(delay endDelay) && currentframe >= nframes - 1;
}
public int getPriority()
{
return priority;
}
public void restart()
{
currentframe = 0;
lastAdvance = Globals.getCurrentTurn();
if(soundPrefix.length() > 0)
SoundManager.playSound((new StringBuilder(String.valueOf(soundPrefix))).append(currentframe).append(“.wav“).toString());
}
public void preloadAll()
{
for(int i = 0; i < nframes; i++)
{
ImageManager.preloadImage((new StringBuilder(String.valueOf(prefix))).append(i).append(“.png“).toString());
if(soundPrefix.length() > 0)
SoundManager.preloadSound((new StringBuilder(String.valueOf(soundPrefix))).append(i).append(“.wav“).toString());
}
}
private String prefix;
private String soundPrefix;
private int nframes;
private int delay;
private int endDelay;
private int priority;
private int currentframe;
private int lastAdvance;
public Animation(String name String sound int num int pause int endPause int prioritee)
{
prefix = name;
soundPrefix = sound;
nframes = num;
delay = pause;
endDelay = endPause;
priority = prioritee;
currentframe = 0;
}
}
public AnimationSet(String defaultNom Animation defaultAnimation)
{
animations = new HashMap();
defaultName = defaultNom;
currentAnimation = defaultName;
相关资源
- javaEE_Servlet_MySql企业员工信息管理系统
- javaee用户管理系统ssm+mybatis+mysql
- AdventNet_Agent_Toolkit_Java_Edition_6_0_0
- Javaweb房屋租赁管理信息系统.zip
- java How To Program - 10th Edition 2 课后答案
- Java核心技术第10版 (卷1+卷2+源代码)
- Java fx教程,有这个,不用再买FX方面
- 数据结构与算法第二版
- jython-standalone-2.7.1.jar
- kgame,一个processing开发的小游戏
- J2SE6.0 API 中文版(冷冬大雪)
- JAVA在线考试系统DEMO源码(毕业设计
- 安卓推箱子小游戏喜洋洋版
- JAVA读写word
- JAVA办公OA源码
- 神经网络算法与实现—基于Java语言(
- 人事管理系统JavaWeb
- 配套网站资源.rar
- Android2048游戏源码
- JAVA学生选课系统263137
- java程序设计梁勇.第十版全部补充材料
- Java服务器高级编程.pdf
- java图像处理毕业设计
- java坦克大战
- java毕业设计就业网站
- Big Java 6th Edition英文版
- 微信商城源码java
- nmap查找在线主机java demo
- android游戏_夜鹰行动 源代码
- java代码实现中国地图着色
评论
共有 条评论