【纯JAVA语言做个RPG游戏】2.游戏界面及角色移动的基本实现 您所在的位置:网站首页 手机版的rpg游戏怎么控制 【纯JAVA语言做个RPG游戏】2.游戏界面及角色移动的基本实现

【纯JAVA语言做个RPG游戏】2.游戏界面及角色移动的基本实现

2023-08-06 00:48| 来源: 网络整理| 查看: 265

    继上次做的地图编辑器,我大致的做了一个4000X4000的游戏地图数组,不过只画了一部分,以后要加什么新东西继续编辑这个地图就行了,保存在了一个文件中.

    现在便可以继续下一步,做出游戏的大致界面了.

    现在的2D游戏界面常见的大致有两种形式:

    1.一种是地图在游戏窗体上固定,人在地图中走动(也就是人相对屏幕移动了);

    2.而另一种则是游戏人物位置固定,游戏的地图在移动,这样看起来也是人物移动了。

    前一种方式地图的大小都给限定死了,不能超出屏幕,要显示大地图的话,通常都是将一个大地图分成若干个区域,然后通过设置门或者传送阵之类的进行整个地图的切换。而后者则没有限定地图的大小,人物可以安逸的走到任意大小地图的任意一个角落。

    当然也有一些游戏是将上面两种模式结合起来了,比如人物走到超过某一个位置时,就开始移动地图,这种混合的模式比较广泛的应用于卷轴式游戏中,例如冒险岛,dnf之类的.

    这里我选择的是第二种形式,因为我觉得将地图分区太麻烦了,用前面做的地图编辑器一次性做一张大的地图更省事。

    那么,首先确定好任务的位置在游戏窗体的正中央,游戏的地图数组是一个二维数组,游戏地图不会小于我们的游戏窗体,所以游戏窗体在任意的一个时刻显示的都仅仅是一个游戏地图的一部分(我们在游戏窗体上显示的时候,仅仅需要读取和操作地图二维数组的一部分值就够了)。

    我们如何来知道目前该显示哪一片地图数组中的内容到游戏面板上呢?这就要靠我们控制的角色了,通过上下左右控制角色相对整张地图的坐标,我们可以将整个游戏面板区域看作是我们操作的角色的视野,通过角色相对与整张地图的坐标,来得到角色相对地图数组的位置(即角色在数组中的i,j),这样就可以找到角色i,j旁边的一系列数组元素了。

    当然,只照上面那样做的话,游戏的画面就会是一格一格动的,因为一个数组元素代表的是一个正方形的图片,角色的视野元素每变一次都至少一变化了一排的元素,不可能说只变化2分之一或者3分之一排的元素,这样画面就是按元素格移动,而不是像素点,看起来就会很恶心,一点都不流畅,要让游戏的画面按像素点移动该怎么做呢?

    首先,还是和前面一样的思维,按照角色相对数组的坐标,找出角色位置旁边的数组元素,但在显示这些元素的时候就不能通过角色相对数组的坐标来画了,要用角色相对地图的坐标来画。由于角色相对地图的坐标变化是连续的,所以这样画出来的图像也是连续的.

 

下面上代码:

1.首先写一个游戏界面和元素的配置接口,其他类需要用到一些这里面的基本配置信息时只需实现这个接口。

/** * 游戏配置接口 * @author yy * */ public interface gameConfig { //游戏主窗体名字 String title = "场景移动小游戏"; //游戏主窗体的大小 int frameX = 700; int frameY = 700; //游戏面板大小 int panelX = 650; int panelY = 650; //游戏素材大小 int elesize = 50; //人物大小 int playersize = 50; //------------[游戏素材]---------- //-----第一层 ImageIcon icon0 = new ImageIcon("000空白.png"); ImageIcon icon1 = new Ima


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有