网站首页 > 文章中心 > 其它

java的rpg游戏代码

作者:小编 更新时间:2023-09-06 22:20:31 浏览量:332人看过

求一个简单的JAVA游戏代码,100行左右,谢谢!

import java.awt.Dimension;

import java.awt.Graphics;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

java的rpg游戏代码-图1

import javax.swing.JFrame;

import javax.swing.JPanel;

public class Painter extends JFrame{

/**

*

*/

CanvasPanel canvas = new CanvasPanel();;

public Painter() {

java的rpg游戏代码-图2

super("Star");

this.add(canvas);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.pack();

this.setResizable(false);

this.setLocationRelativeTo(null);

this.setVisible(true);

}

public static void main(String[] args) {

new Painter();

class CanvasPanel extends JPanel implements ActionListener{

private String[] btn_name = {"+", "-", "R", "L"};

public CanvasPanel() {

this.setLayout(null);

btn[i] = new JButton(btn_name[i]);

btn[i].addActionListener(this);

this.add(btn[i]);

@Override

public void paintComponent(Graphics g) {

super.paintComponent(g);

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if(e.getActionCommand() == "+") {

repaint();

} else if(e.getActionCommand() == "-") {

if(radius 0)

} else if(e.getActionCommand() == "R") {

} else if(e.getActionCommand() == "L") {

求一个简单RPG游戏的代码,JAva编写的

package?com.lxi;

import?java.io.BufferedReader;

import?java.io.InputStreamReader;

public?class?Rpg?{

public?static?void?main(String[]?args)?throws?Exception?{

System.out.println("今天这一节输入两个人物进行PK,以英文逗号分隔:?[BM,DH,MK]");

BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(System.in));

ClassPerson?c1;

try?{

String?temp?=?br.readLine();

String[]?str?=?temp.split(",");

throw?new?Exception("输入格式有误,按默认PK");

c1?=?(ClassPerson)?Class.forName("com.lxi."

+?str[0].toUpperCase());

+?str[1].toUpperCase());

}?catch?(Exception?e)?{

//?TODO?Auto-generated?catch?block

c1?=?(ClassPerson)?Class.forName("com.lxi.BM");

Person?p1?=?c1.newInstance();

long?time?=?System.currentTimeMillis();

long?nextTime1?=?(long)?(time?+?p1.coldTime*1000);?//

System.out.println("---游戏开始---");

while?(true)?{

long?currenTime?=?System.currentTimeMillis();

if?(nextTime1?currenTime)?{?//时间到则发动攻击

nextTime1?+=?p1.coldTime*1000?+?p1.waitTime*1000;?//下次攻击时间=冷却时间+被晕眩时间

p1.waitTime?=?0;?//回合结束,重置被晕眩时间为0

}?catch?(ClassCastException?e)?{

e.printStackTrace();

}?catch?(InstantiationException?e)?{

}?catch?(IllegalAccessException?e)?{

import?java.util.Random;

class?BM?extends?Person?{

public?BM()?{

waitTime?=?0;

int?count?=?0;?//防御技能发动的次数

boolean?hitFlag?=?false;

boolean?defenseFlag?=?false;

Random?rand?=?new?Random();

public?void?hit(Person?p)?{

if?(rand.nextInt(10)?chanceHit)?{

hitFlag?=?true;

int?hurt?=?p.defense(this);

p.val?=?p.val?-?hurt;

fight?=?temp;??//还原为单倍攻击

if?(p.val?=?0)?{

System.out.println(this.getClass().getSimpleName()?+?"胜出!");

System.exit(0);

System.out.println(this.getClass().getSimpleName()?+?"攻击"

+?p.getClass().getSimpleName()?+?","

+?this.getClass().getSimpleName()

+?(this.hitFlag?"发动攻击技能?"?:?"未发动攻击技能?")

+?p.getClass().getSimpleName()

+?(this.defenseFlag?"发动防御技能?"?:?"未发动防御技能?")

+?this.getClass().getSimpleName()?+?":"?+?this.val?+?","

+?p.getClass().getSimpleName()?+?":"?+?p.val);

hitFlag?=?false;

defenseFlag?=?false;

public?int?defense(Person?p)?{

if?(rand.nextInt(10)?chanceDefense)?{

if?(count?!=?0)?{

p.val?=?p.val?-?p.fight;

count++;

defenseFlag?=?true;

return?p.fight;

class?MK?extends?Person?{

public?MK()?{

//三个人物的基类

abstract?class?Person?{

int?val;???//生命值

double?coldTime;??//冷却时间

int?waitTime;??//晕眩时间

int?fight;??//攻击力

int?chanceHit;?//发起主动技能的概率

int?chanceDefense;?//发起防御技能的概率

abstract?void?hit(Person?p);?//攻击技能

abstract?int?defense(Person?p);?//防御技能,返回被伤害点数

class?DH?extends?Person?{

public?DH()?{

coldTime?=?1.0;

boolean?hitFlag?=?false;?//主动技能发动的标识

boolean?defenseFlag?=?false;?//防御技能发动的标识

if?(rand.nextInt(10)?chanceHit)?{?//发动主动技能

val?=?val?+?hurt;

hitFlag?=?true;??//标记主动技能已经发动

}?else?{?//进行普通攻击

hitFlag?=?false;??//

defenseFlag?=?false;?//重置标记,下次重用

defenseFlag?=?true;?//标记防御技能已经发动

return?0;

}?else?{

如何用java语言做一个rpg类游戏

求java rpg小游戏源代码 最好是文字rpg 不需要很复杂 只是交作业用

连连看的小源码

package Lianliankan;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class lianliankan implements ActionListener

{

JFrame mainFrame; //主面板

Container thisContainer;

JPanel centerPanel,southPanel,northPanel; //子面板

JButton exitButton,resetButton,newlyButton; //退出,重列,重新开始按钮

JLabel fractionLable=new JLabel("0"); //分数标签

JButton firstButton,secondButton; //分别记录两次被选中的按钮

static boolean pressInformation=false; //判断是否有按钮被选中

int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戏按钮的位置坐标

int i,j,k,n;//消除方法控制

public void init(){

mainFrame=new JFrame("JKJ连连看");

thisContainer = mainFrame.getContentPane();

thisContainer.setLayout(new BorderLayout());

centerPanel=new JPanel();

southPanel=new JPanel();

northPanel=new JPanel();

thisContainer.add(centerPanel,"Center");

thisContainer.add(southPanel,"South");

thisContainer.add(northPanel,"North");

diamondsButton[cols][rows]=new JButton(String.valueOf(grid[cols+1][rows+1]));

diamondsButton[cols][rows].addActionListener(this);

centerPanel.add(diamondsButton[cols][rows]);

exitButton=new JButton("退出");

exitButton.addActionListener(this);

resetButton=new JButton("重列");

resetButton.addActionListener(this);

newlyButton=new JButton("再来一局");

newlyButton.addActionListener(this);

southPanel.add(exitButton);

southPanel.add(resetButton);

southPanel.add(newlyButton);

fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())));

northPanel.add(fractionLable);

mainFrame.setVisible(true);

public void randomBuild() {

int randoms,cols,rows;

while(grid[cols][rows]!=0) {

this.grid[cols][rows]=randoms;

public void fraction(){

fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())+100));

public void reload() {

int n=0,cols,rows;

if(this.grid[i][j]!=0) {

java的rpg游戏代码-图3

save[n]=this.grid[i][j];

n++;

n=n-1;

this.grid=grid;

while(n=0) {

this.grid[cols][rows]=save[n];

n--;

mainFrame.setVisible(false);

init();

if(grid[i+1][j+1]==0)

diamondsButton[i][j].setVisible(false);

public void estimateEven(int placeX,int placeY,JButton bz) {

if(pressInformation==false) {

x=placeX;

y=placeY;

secondMsg=grid[x][y];

secondButton=bz;

pressInformation=true;

else {

x0=x;

y0=y;

fristMsg=secondMsg;

firstButton=secondButton;

if(fristMsg==secondMsg secondButton!=firstButton){

xiao();

public void xiao() { //相同的情况下能不能消去.仔细分析,不一条条注释

if((x0==x (y0==y+1||y0==y-1)) || ((x0==x+1||x0==x-1)(y0==y))){ //判断是否相邻

remove();

else{

if (grid[x0][j]==0){ //判断第一个按钮同行哪个按钮为空

if (yj) { //如果第二个按钮的Y坐标大于空按钮的Y坐标说明第一按钮在第二按钮左边

for (i=y-1;i=j;i-- ){ //判断第二按钮左侧直到第一按钮中间有没有按钮

if (grid[x][i]!=0) {

k=0;

break;

else{ k=1; } //K=1说明通过了第一次验证

if (k==1) {

linePassOne();

if (yj){ //如果第二个按钮的Y坐标小于空按钮的Y坐标说明第一按钮在第二按钮右边

for (i=y+1;i=j ;i++ ){ //判断第二按钮左侧直到第一按钮中间有没有按钮

if (grid[x][i]!=0){

else { k=1; }

if (k==1){

if (y==j ) {

if (x0==x) {

if (x0x) {

for (n=x0;n=x-1;n++ ) {

if (grid[n][j]!=0) {

if(grid[n][j]==0 n==x-1) {

for (n=x0;n=x+1 ;n-- ) {

if(grid[n][j]==0 n==x+1) {

if (grid[i][y0]==0) {

if (xi) {

for (j=x-1;j=i ;j-- ) {

if (grid[j][y]!=0) {

rowPassOne();

for (j=x+1;j=i;j++ ) {

if (x==i) {

if (y0==y) {

if (y0y) {

for (n=y0;n=y-1 ;n++ ) {

if (grid[i][n]!=0) {

if(grid[i][n]==0 n==y-1) {

for (n=y0;n=y+1 ;n--) {

if(grid[i][n]==0 n==y+1) {

public void linePassOne(){

if (y0j){ //第一按钮同行空按钮在左边

for (i=y0-1;i=j ;i-- ){ //判断第一按钮同左侧空按钮之间有没按钮

if (grid[x0][i]!=0) {

if (y0j){ //第一按钮同行空按钮在与第二按钮之间

for (i=y0+1;i=j ;i++){

public void rowPassOne(){

if (x0i) {

for (j=x0-1;j=i ;j-- ) {

if (grid[j][y0]!=0) {

for (j=x0+1;j=i ;j++ ) {

public void remove(){

firstButton.setVisible(false);

secondButton.setVisible(false);

fraction();

pressInformation=false;

grid[x0][y0]=0;

grid[x][y]=0;

if(e.getSource()==newlyButton){

this.grid = grid;

randomBuild();

if(e.getSource()==exitButton)

if(e.getSource()==resetButton)

reload();

if(e.getSource()==diamondsButton[cols][rows])

estimateEven(cols+1,rows+1,diamondsButton[cols][rows]);

lianliankan llk = new lianliankan();

llk.randomBuild();

llk.init();

以上就是土嘎嘎小编为大家整理的java的rpg游戏代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章