「javarpg游戏源码」java游戏源码百度网盘

博主:adminadmin 2023-03-21 22:01:09 751

本篇文章给大家谈谈javarpg游戏源码,以及java游戏源码百度网盘对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

求一个简单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小游戏源代码 最好是文字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

谁有java游戏源码,给我发过来‘?

注意:源代码仅供个人作学习研究时的参考,不得在程序制作中直接抄录。

源代码一共两个文件:Mine.java,MGame.java,另外还有一些图片。

在JBuilder下建立一个新的工程,将两个源文件复制到工程目录下的src\mine目录中,将所有图片复制到src\images目录中就可以了。

要点分析

数据结构

首先要说明一下用来存放地雷信息的数组grid。

grid是一个二维数组,第一位对应表格的行,第二位对应表格的列,比如grid[y][x]表示第y行第x列。每个字节的含义分三段:0-9表示已经挖开;10-19表示仍然埋藏;20-29表示做了标记。每段中:0-8表示周围的地雷数量;9表示是地雷。

newGame()函数

这是用于开始一个新游戏的。

由于每次地雷的埋放地是随机的,应次开始新游戏之前先要生成新的地雷信息。

第一步是初始化grid,将所有内容都置成10,因为一开始所有格子都是埋藏的。

for(i=0;iHeight; i++)

{

for(j=0; jWidth; j++)

grid[j] = 10;

}

第二步是随机产生地雷。当然了,已经产生过地雷的地方要避开。

for(i=0; iMINECOUNT; i++)

{

while(true)

{

x = Math.abs(rand.nextInt()) % Width;

y = Math.abs(rand.nextInt()) % Height;

if (grid[y][x] != 19)

{

grid[y][x] = 19;

break;

}

}

}

最后就是无雷处计算周围的雷数了。怎么计算?一个一个加就是了。

挖雷与做标记

在看一下按键响应函数keyPressed(int kcode),按1键是挖开动作。

前半部分表示如果当前焦点在一个埋藏格(值介于10到19之间),那么将其值减10,表示现在挖开。当然如果地下不是雷而且周围没有雷(值等于0)那么需要自动展开,这里调用了Expand(),(selx,sely)是当前焦点的表格坐标。

后半部分表示如果当前焦点在一个已经挖开的格子上(值小于10),那么就调用SafeExp()来自动挖开周围未挖的格子。

按3键是做标记动作。如果当前格是埋藏格,就做上标记(值加10);如果当前格已经做了标记,那么就去掉标记(值减10)。

自动展开

Expand()是一个嵌套函数,他的作用是将周围不含地雷的格子周围全部挖开,如果挖开的部分中也有周围不含地雷的格子,那么对那些格子也重复前面的操作,直到把相关的格子都挖开。挖的顺序是左上、上、右上、左、右、左下、下、右下,如果遇到一个周围不含地雷的格子(值为0)那么马上嵌套调用Expand()对那个格子进行处理。

SafeExp()是一个自动挖开周围未挖格子的函数。当然要实现这个功能是有条件的,就是周围做了标记的格子数量必须等于当前格所标的数字,也就是说玩家把周围所有的地雷都标记了(不管是否标错)。函数中第一个部分就是做以上条件的判断。

第二部分是把周围埋藏的格子挖开。但是由于玩家的错误可能标记了没有地雷的格子,而把有地雷的格子漏标了,所以先要检查一下没做标而有地雷的格子和做错标记的格子。如果没有这些错误,那么可以安全的翻开了,同时也要检查是否挖到周围不含雷的格子,有的话就要调用Expand()了。

SafeExp()的返回值表示是否引爆了地雷,就是标记错误,true表示是,false表示否。这主要用于判断这次游戏是否要结束。

类介绍

图像缓存 ExtendedImage

ExtendedImage是Siemens自己扩展的一个专用类,只在Siemens的Java中存在。

这个类主要是用做图像的缓存。大家不知道还有没有印象,以前在PC上编程的时候由于显示的速度比较慢,往往会开一片显示缓存,先把要现实的内容画到这片缓存中,全部画好后再一次性显示出来,ExtendedImage类就起到了这个作用。其实Java本身的Image类也可以实现类似的功能,但是显示速度好象不如人意,而且ExtendedImage更好用,所以我基本上都采用这个类。当然这对通用性是不利的。

ExtendImage的主要函数有:

void clear(byte color);

用给定的颜色填充整个图形区域。

void blitToScreen(int x, int y);

将缓存内容贴到显示屏上,(x,y)是屏幕左上角坐标。

Image getImage();

返回一个标准的Image类。可以通过ExtendImage.getImage().getGraphics()得到与其相关的Graphics对象,用来往ExtendImage上面画图。

跪求JAVA编写的小游戏源代码

import java.awt.*;

import java.applet.*;

import java.awt.event.*;

import java.awt.image.*;

import java.awt.geom.*;

import java.util.*;

class Car{

Image img;

int x, y;

Dimension dim;

Car(Image img){

this.img=img;

}

Car(Image img, int x, int y){

this.img=img; this.x=x; this.y=y;

}

Car(Image img, int x, int y, Dimension dim){

this(img, x, y);

this.dim=dim;

}

void draw(Graphics g, ImageObserver observer){

g.drawImage(img, x, y, observer);

}

int getX(){ return x;}

int getY(){ return y;}

void setX(int x){this.x=x;}

void setY(int y){this.y=y;}

void setLocation(int x, int y){

this.x=x; this.y=y;

}

int getWidth(){ return img.getWidth(null);}

int getHeight(){ return img.getHeight(null);}

Rectangle2D getRectangle(){

return new Rectangle2D.Float(x, y, getWidth(), getHeight());

}

void move(int dx, int dy){

x+=dx;

y+=dy;

if(dim!=null){

if(x0)x=0;

if(x+getWidth()dim.getWidth())

x=(int)dim.getWidth()-getWidth();

}

}

boolean intersects(Car car){

return getRectangle().intersects(car.getRectangle());

}

boolean intersects(int x, int y){

return getRectangle().intersects(x, y, getWidth(), getHeight());

}

}

public class CarRace extends Applet implements KeyListener, Runnable{

Image buff;

Canvas screen;

Graphics2D gs, gb;

Car redCar;

Car[] enemy=new Car[20];

Button bStart;

Thread game;

boolean loop=true;

Dimension dim=new Dimension(200, 300);

int road;

Random rnd=new Random();

public void init(){

prepareResource();

setBackground(Color.blue);

initScreen();

add(screen);

bStart=new Button("霸烙 矫累");

add(bStart);

bStart.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent ae){

screen.requestFocus();

if(!game.isAlive())

game.start();

}

});

}

void prepareResource(){

Image imgRed=getImage(getCodeBase(),"images/red_car.gif");

Image imgBlue=getImage(getCodeBase(),"images/blue_car.gif");

Image imgGreen=getImage(getCodeBase(),"images/green_car.gif");

MediaTracker mt=new MediaTracker(this);

try{

mt.addImage(imgRed, 0);

mt.addImage(imgBlue, 1);

mt.addImage(imgGreen, 2);

mt.waitForAll();

}catch(Exception e){}

buff=createImage((int)dim.getWidth(), (int)dim.getHeight());

gb=(Graphics2D)buff.getGraphics();

redCar=new Car(imgRed, 80,250, dim);

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

enemy[i]=new Car(imgBlue, 0, 0);

}

for(int i=10;ienemy.length;i++){

enemy[i]=new Car(imgGreen, 0, 0);

}

for(int i=0;ienemy.length;i++){

setEnemy(i);

}

game=new Thread(this);

}

public void stop(){

loop=false;

}

public void run(){

while(loop){

drawScreen();

try{ Thread.sleep(50);}catch(Exception e){}

}

}

void initScreen(){

screen=new Canvas(){

public void paint(Graphics g){

if(gs==null){

gs=(Graphics2D)screen.getGraphics();

}

drawScreen();

}

};

screen.setSize(dim);

screen.addKeyListener(this);

}

void setEnemy(int en){

int x, y;

next:while(true){

x=rnd.nextInt((int)dim.getWidth()-enemy[en].getWidth());

y=-rnd.nextInt(5000)-200;

for(int j=0;jenemy.length;j++){

if(j!=en enemy[j].intersects(x, y))continue next;

}

enemy[en].setLocation(x, y);

break;

}

}

void check(Car en){

if(redCar.intersects(en)){

if(redCar.getX()en.getX()){

en.move(-20, 0);

redCar.move(20, 0);

}

else{

en.move(20,0);

redCar.move(-20, 0);

}

}

}

synchronized void drawScreen(){

gb.clearRect(0, 0, (int)dim.getWidth(), (int)dim.getHeight());

gb.setPaint(new Color(100, 100, 100));

gb.fillRect(0, 0, (int)dim.getWidth(), (int)dim.getHeight());

drawRoad();

for(int i=0;ienemy.length;i++){

enemy[i].move(0, 15);

enemy[i].draw(gb, screen);

if(enemy[i].getY()dim.getHeight())

setEnemy(i);

check(enemy[i]);

}

redCar.draw(gb, screen);

gs.drawImage(buff, 0,0, screen);

}

void drawRoad(){

road+=80;

gb.setPaint(Color.yellow);

gb.fillRect((int)dim.getWidth()/2, road,10,150);

if(road=dim.getHeight())road=-150;

}

public void keyPressed(KeyEvent ke){

if(ke.getKeyCode()==KeyEvent.VK_LEFT){

redCar.move(-10,0);

}

else if(ke.getKeyCode()==KeyEvent.VK_RIGHT){

redCar.move(10,0);

}

}

public void keyReleased(KeyEvent ke){}

public void keyTyped(KeyEvent ke){}

}

这个是一个典型的Applet,文件名应该是CarRace.java,需要图片作为车子等等,本人也是别人给的,但是还要个.html文件来运行它,代码为:

Applet code="CarRace.class" width=250 height=350

/Applet

请楼主采纳

javarpg游戏源码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java游戏源码百度网盘、javarpg游戏源码的信息别忘了在本站进行查找喔。