189 8069 5689

java代码rpg文字 java文字编码

准备用JAVA写个RPG游戏 自己现在还是小白。。。。JAVA脚本到底是什么?求解释。。。尽量说细点哇亲~~

java脚本:意思是 javaScript 这门脚本语言。与java 没有关系。

创新互联公司专业为企业提供施甸网站建设、施甸做网站、施甸网站设计、施甸网站制作等企业网站建设、网页设计与制作、施甸企业网站模板建站服务,十余年施甸做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

要了解javascript 点击

怎样用java绘制弧形文字

用java绘制弧形文字的方法是调用java 2d图形处理的api实现的。

完整代码如下:

// 引入需要的jar包

import java.awt.Container;

import java.awt.Dimension;

import java.awt.Font;

import java.awt.FontMetrics;

import java.awt.Graphics;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JFrame;

import javax.swing.JPanel;

//定义一个类

public class FontPanel extends JPanel {

//定义一个画板,入参是图形g

public void paintComponent(Graphics g) {

super.paintComponent(g);

Font f = new Font("SansSerif", Font.BOLD, 14); 设置字体加粗

Font fi = new Font("SansSerif", Font.BOLD + Font.ITALIC, 14);设置字体加粗,斜体

FontMetrics fm = g.getFontMetrics(f); //得到当前的font metrics

FontMetrics fim = g.getFontMetrics(fi);//得到当前的font metrics

String s1 = "Java ";

String s2 = "Source and Support"; 定义字符串

String s3 = " java 字体变形学习";

int width1 = fm.stringWidth(s1); 设置宽度

int width2 = fim.stringWidth(s2);

int width3 = fm.stringWidth(s3);

Dimension d = getSize(); 设置二维图形的维度

int cx = (d.width - width1 - width2 - width3) / 2; 计算绘制字体的x轴

int cy = (d.height - fm.getHeight()) / 2 + fm.getAscent();计算绘制字体的y轴

g.setFont(f);

g.drawString(s1, cx, cy);

cx += width1;

g.setFont(fi);

g.drawString(s2, cx, cy);

cx += width2;

g.setFont(f);

g.drawString(s3, cx, cy);

}

main方法测试:

public static void main(String[] args) {

JFrame frame = new JFrame();

frame.setTitle("NotHelloWorld2");

frame.setSize(350, 200);

frame.addWindowListener(new WindowAdapter() {

 public void windowClosing(WindowEvent e) {

   System.exit(0);

 }

});

Container contentPane = frame.getContentPane();

contentPane.add(new FontPanel());

frame.show();

}

}

运行结果:

求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 diamondsButton[][] = new JButton[6][5];//游戏按钮数组

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

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

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

int grid[][] = new int[8][7];//储存游戏按钮位置

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");

centerPanel.setLayout(new GridLayout(6,5));

for(int cols = 0;cols 6;cols++){

for(int rows = 0;rows 5;rows++ ){

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.setBounds(280,100,500,450);

mainFrame.setVisible(true);

}

public void randomBuild() {

int randoms,cols,rows;

for(int twins=1;twins=15;twins++) {

randoms=(int)(Math.random()*25+1);

for(int alike=1;alike=2;alike++) {

cols=(int)(Math.random()*6+1);

rows=(int)(Math.random()*5+1);

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

cols=(int)(Math.random()*6+1);

rows=(int)(Math.random()*5+1);

}

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

}

}

}

public void fraction(){

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

}

public void reload() {

int save[] = new int[30];

int n=0,cols,rows;

int grid[][]= new int[8][7];

for(int i=0;i=6;i++) {

for(int j=0;j=5;j++) {

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

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

n++;

}

}

}

n=n-1;

this.grid=grid;

while(n=0) {

cols=(int)(Math.random()*6+1);

rows=(int)(Math.random()*5+1);

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

cols=(int)(Math.random()*6+1);

rows=(int)(Math.random()*5+1);

}

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

n--;

}

mainFrame.setVisible(false);

pressInformation=false; //这里一定要将按钮点击信息归为初始

init();

for(int i = 0;i 6;i++){

for(int j = 0;j 5;j++ ){

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;

x=placeX;

y=placeY;

secondMsg=grid[x][y];

secondButton=bz;

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{

for (j=0;j7;j++ ) {

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){

k=0;

break;

}

else { k=1; }

}

if (k==1){

linePassOne();

}

}

if (y==j ) {

linePassOne();

}

}

if (k==2) {

if (x0==x) {

remove();

}

if (x0x) {

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

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

k=0;

break;

}

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

remove();

}

}

}

if (x0x) {

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

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

k=0;

break;

}

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

remove();

}

}

}

}

}

for (i=0;i8;i++ ) { //列

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

if (xi) {

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

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

k=0;

break;

}

else { k=1; }

}

if (k==1) {

rowPassOne();

}

}

if (xi) {

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

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

k=0;

break;

}

else { k=1; }

}

if (k==1) {

rowPassOne();

}

}

if (x==i) {

rowPassOne();

}

}

if (k==2){

if (y0==y) {

remove();

}

if (y0y) {

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

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

k=0;

break;

}

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

remove();

}

}

}

if (y0y) {

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

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

k=0;

break;

}

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

remove();

}

}

}

}

}

}

}

public void linePassOne(){

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

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

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

k=0;

break;

}

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

}

}

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

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

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

k=0;

break;

}

else{ k=2; }

}

}

}

public void rowPassOne(){

if (x0i) {

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

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

k=0;

break;

}

else { k=2; }

}

}

if (x0i) {

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

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

k=0;

break;

}

else { k=2; }

}

}

}

public void remove(){

firstButton.setVisible(false);

secondButton.setVisible(false);

fraction();

pressInformation=false;

k=0;

grid[x0][y0]=0;

grid[x][y]=0;

}

public void actionPerformed(ActionEvent e) {

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

int grid[][] = new int[8][7];

this.grid = grid;

randomBuild();

mainFrame.setVisible(false);

pressInformation=false;

init();

}

if(e.getSource()==exitButton)

System.exit(0);

if(e.getSource()==resetButton)

reload();

for(int cols = 0;cols 6;cols++){

for(int rows = 0;rows 5;rows++ ){

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

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

}

}

}

public static void main(String[] args) {

lianliankan llk = new lianliankan();

llk.randomBuild();

llk.init();

}

}

//old 998 lines

//new 318 lines

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

package com.lxi;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class Rpg {

@SuppressWarnings("unchecked")

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;

ClassPerson c2;

try {

String temp = br.readLine();

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

if (str.length != 2) {

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

}

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

+ str[0].toUpperCase());

c2 = (ClassPerson) Class.forName("com.lxi."

+ str[1].toUpperCase());

} catch (Exception e) {

// TODO Auto-generated catch block

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

c2 = (ClassPerson) Class.forName("com.lxi.DH");

}

try {

Person p1 = c1.newInstance();

Person p2 = c2.newInstance();

long time = System.currentTimeMillis();

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

long nextTime2 = (long) (time + p2.coldTime*1000); //发动攻击的时间

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

while (true) {

long currenTime = System.currentTimeMillis();

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

p1.hit(p2);

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

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

}

if (nextTime2  currenTime) {

p2.hit(p1);

nextTime2 += p2.coldTime*1000 + p2.waitTime*1000;

p2.waitTime = 0;

}

}

} catch (ClassCastException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (InstantiationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IllegalAccessException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

}

}

}

package com.lxi;

import java.util.Random;

class BM extends Person {

public BM() {

val = 650;

coldTime = 1.5;

fight = 40;

chanceHit = 3;

chanceDefense = 3;

waitTime = 0;

}

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

int temp = 40;   //攻击力,值同fight

boolean hitFlag = false;

boolean defenseFlag = false;

Random rand = new Random();

public void hit(Person p) {

if (rand.nextInt(10)  chanceHit) {

fight = fight * 2;   //发动双倍攻击

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;

if (p.val = 0) {

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

System.exit(0);

}

}

}

return p.fight;

}

}

class MK extends Person {

public MK() {

val = 700;

coldTime = 2.5;

fight = 50;

chanceDefense = 6;

chanceHit = 3;

waitTime = 0;

}

boolean hitFlag = false;

boolean defenseFlag = false;

Random rand = new Random();

public void hit(Person p) {

if (rand.nextInt(10)  chanceHit) {

p.waitTime = 3;   //使对方晕眩3s

hitFlag = true;

}

int hurt = p.defense(this);

p.val = p.val - hurt;

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) {

defenseFlag = true;

return p.fight / 2;   //防御技能发动,伤害减半

}

return p.fight;

}

}

package com.lxi;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.util.Random;

//三个人物的基类

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() {

val = 600;

coldTime = 1.0;

fight = 30;

chanceHit = 3;      //表示30%的概率

chanceDefense = 3;

waitTime = 0;

}

Random rand = new Random();

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

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

public void hit(Person p) {

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

int hurt = p.defense(this);

p.val = p.val - hurt;

if (p.val = 0) {

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

System.exit(0);

}

val = val + hurt;

if (val  600)

val = 600;

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

} else {  //进行普通攻击

int hurt = p.defense(this);

p.val = p.val - hurt;

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) {

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

return 0;

} else {

return p.fight;

}

}

}


网站标题:java代码rpg文字 java文字编码
URL分享:http://jkwzsj.com/article/dosedcc.html

其他资讯