Java Swing游戏开发学习23

本文介绍了如何在像素风格的2D游戏中实现角色状态属性的显示,包括生命值、级别、力量、闪避等,通过自定义矩形和代码详细展示了如何在游戏界面中添加和显示这些属性。
摘要由CSDN通过智能技术生成

内容来自RyiSnow视频讲解

这一节讲的是Character Status角色状态或属性。

前言

这一节讲的是实现角色状态或属性的显示,就有点像RPG游戏中,人物属性显示的面板,其中有玩家的装备、玩家的等级,各种防御值、闪避值、跑速什么的。

类似下图游戏的人物属性面板,当然没这么华丽,毕竟是像素风格的2D游戏。

在这里插入图片描述
在这里插入图片描述

实现

这里还是绘制了一个矩形,然后在矩形框中填充信息来实现的角色属性显示。虽然看起来比较简陋,但是合抱之木生于毫末嘛。

角色添加的属性,下面这些属性是需要显示在属性框中的。这些都是简单的示例,可以根据自己的需要添加更多的属性。

// player status
maxLife = 6;
life = maxLife;//生命值
level = 1;//级别
strength = 1;//力量。力量越大,输出的伤害越大。
dexterity = 1;//闪避。闪避越高,收到的伤害就越小
exp = 0;//当前经验
nextLevelExp = 5;//升级所需经验
coin = 0;//钱
currentWeapon = new OBJ_Sword_Normal(gp);//武器
currentShield = new OBJ_Shield_Wood(gp);//盾牌
attack = getAttack();//总的攻击值取决于力量和武器。
defense = getDefense();//总的防御值取决于闪避和盾牌

效果

  • 英文效果
    在这里插入图片描述
  • 中文效果
    在这里插入图片描述
    这里没有使用像素字体,使用的是宋体,由于像素字体和作者所用的不一样,效果看起来比较尴尬,就没用。为了看中文的显示效果,特地用中文显示试了一下。

绘制一个自定义的矩形

  这里增加了一个角色状态,当按c键的时候触发。就像之前显示与NPC对话框的时候调用的方法是一样的,就是显示位置和大小有区别。再次按c键属性框消失。

在矩形中显示角色属性

  左侧显示属性名称

//names
g2.drawString("Level", textX, textY);
textY += lineHeight;
g2.drawString("Life", textX, textY);
textY += lineHeight;
g2.drawString("Strength", textX, textY);
textY += lineHeight;
g2.drawString("Dexterity", textX, textY);
textY += lineHeight;
g2.drawString("Attack", textX, textY);
textY += lineHeight;
g2.drawString("Defense", textX, textY);
textY += lineHeight;
g2.drawString("Exp", textX, textY);
textY += lineHeight;
g2.drawString("Next Level", textX, textY);
textY += lineHeight;
g2.drawString("Coin", textX, textY);
textY += lineHeight + 20;
g2.drawString("Weapon", textX, textY);
textY += lineHeight + 15;
g2.drawString("Shield", textX, textY);
textY += lineHeight;

  右侧显示属性值

value = String.valueOf(gp.player.level);
textX = getXforAlignToRightText(value, tailX);
g2.drawString(value, textX, textY);
textY += lineHeight;
......

更多细节可以参考项目UI类中的代码。这一节基本上就是增加人物角色的属性,然后创建一个角色属性矩形框,把属性显示到里面,就结束了。

代码

参考第6篇文章最后,可以使用git clone或直接下载获得完整项目

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值