本帖最后由 2666fff 于 2015-5-7 23:51 编辑
首先声明:这是一个完整2D游戏,包括打怪,升级,跑地图,开宝箱,加血,捡装备等等基本游戏元素,所有代码,都是我自己在学校的时候一行一行敲出来的,绝无雷同。
更多代码可以去看我的github,跟我论坛账号同一用户名。
我把这游戏发在这里,一是交流,大家可以自己编着玩,第二,这是个完整代码,你找工作的时候稍微copy改改,就是你的project了,你们懂滴。
黑马门槛真心高,真心屌,一定要到25分才能进门,我决定论坛发这个代码,博客10篇连载我的android程序码,都不算小程序了,如果这样做不符合规范,请老师们提前说,我要赶在11号之前混到25分,谢谢了!
先说环境,这个游戏不算小,包含内容较多,基于slick2D库,至于何为slick2D各位请自行查询。
由于文件较多,我每次都会发部文件结构图。
此游戏包含4个大package:
items,物品系统,monsters,怪物系统,project2,我当时做得第二个project,这是这个游戏的基础javaclass package,villagers,NPC系统。
本帖先发布project2部分文件。
java完整2D游戏连载--part2 (单位基本类) http://bbs.itheima.com/thread-194622-1-1.html
java完整2D游戏连载--part3 (地图 人物 物品栏 类)
http://bbs.itheima.com/thread-194627-1-1.html
java完整2D游戏连载--part4 (gameObject Fontloader 装备属性 装备 ...
http://bbs.itheima.com/thread-194636-1-1.html
RPG.java(包含main function,运行class)
- package project2;
- /* 433-294 Object Oriented Software Development //我的课的名字
- * RPG Game Engine
- * Author: weiqian wang <wangw> //我的名字及学校用户名。
- */
- //import 基本
- import org.newdawn.slick.AppGameContainer;
- import org.newdawn.slick.GameContainer;
- import org.newdawn.slick.BasicGame;
- import org.newdawn.slick.Graphics;
- import org.newdawn.slick.Input;
- import org.newdawn.slick.SlickException;
- /** Main class for the Role-Playing Game engine.
- * Handles initialisation, input and rendering.
- */
- public class RPG extends BasicGame
- {
- /** Location of the "assets" directory. */
- public static final String ASSETS_PATH = "assets";
- /** Screen width, in pixels. */
- public static final int screenwidth = 800;
- /** Screen height, in pixels. */
- public static final int screenheight = 600;
- public static final int panelheight = 60;
- private __world world;
-
- /** Create a new RPG object. */
- public RPG()
- {
- super("RPG Game Engine");
- }
- /** Initialise the game state. 初始化游戏状态,初始游戏容器
- * @param gc The Slick game container object.
- */
- @Override
- public void init(GameContainer gc)
- throws SlickException
- {
- world = new __world();
- }
- /** Update the game state for a frame. 不断更新游戏数据,游戏程序非一般程序,数据画面需随时更新渲染。
- * @param gc The Slick game container object.
- * @param delta Time passed since last frame (milliseconds).
- */
- @Override
- public void update(GameContainer gc, int delta)
- throws SlickException
- {
- // Get data about the current input (keyboard state). 键盘输入状态
- Input input = gc.getInput();
- // Update the player's movement direction based on keyboard presses.
- double dir_x = 0;
- double dir_y = 0;
- if (input.isKeyDown(Input.KEY_DOWN))
- dir_y += 1;
- if (input.isKeyDown(Input.KEY_UP))
- dir_y -= 1;
- if (input.isKeyDown(Input.KEY_LEFT))
- dir_x -= 1;
- if (input.isKeyDown(Input.KEY_RIGHT))
- dir_x += 1;
- // Let World.update decide what to do with this data.玩家位置,镜头系统固定。
- world.update(dir_x, dir_y, delta);
- }
- /** Render the entire screen, so it reflects the current game state.渲染画面,更新游戏画面。
- * @param gc The Slick game container object.
- * @param g The Slick graphics object, used for drawing.
- */
- public void render(GameContainer gc, Graphics g)
- throws SlickException
- {
- // Let World.render handle the rendering.
- world.render(g);
- }
- /** Start-up method. Creates the game and runs it. main函数,开启游戏。
- * @param args Command-line arguments (ignored).
- */
- public static void main(String[] args)
- throws SlickException
- {
- AppGameContainer app = new AppGameContainer(new RPG());
- // setShowFPS(true), to show frames-per-second.
- app.setShowFPS(false);
- app.setDisplayMode(screenwidth, screenheight, false);
- app.start();
- }
- }
复制代码
字数限制,先发一个 类,陆续放出全部
|
|