当前位置:首页 > 代码 > 正文

java小游戏代码(java小游戏代码没有素材的)

admin 发布:2022-12-19 16:57 177


本篇文章给大家谈谈java小游戏代码,以及java小游戏代码没有素材的对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

求"贪吃蛇"小游戏JAVA源代码一份

贪吃蛇

import java.awt.*;

import java.awt.event.*;

public class GreedSnake //主类

{

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

new MyWindow();

}

}

class MyPanel extends Panel implements KeyListener,Runnable//自定义面板类,继承了键盘和线程接口

{

Button snake[]; //定义蛇按钮

int shu=0; //蛇的节数

int food[]; //食物数组

boolean result=true; //判定结果是输 还是赢

Thread thread; //定义线程

static int weix,weiy; //食物位置

boolean t=true; //判定游戏是否结束

int fangxiang=0; //蛇移动方向

int x=0,y=0; //蛇头位置

MyPanel()

{

setLayout(null);

snake=new Button[20];

food=new int [20];

thread=new Thread(this);

for(int j=0;j20;j++)

{

food[j]=(int)(Math.random()*99);//定义20个随机食物

}

weix=(int)(food[0]*0.1)*60; //十位*60为横坐标

weiy=(int)(food[0]%10)*40; //个位*40为纵坐标

for(int i=0;i20;i++)

{

snake[i]=new Button();

}

add(snake[0]);

snake[0].setBackground(Color.black);

snake[0].addKeyListener(this); //为蛇头添加键盘监视器

snake[0].setBounds(0,0,10,10);

setBackground(Color.cyan);

}

public void run() //接收线程

{

while(t)

{

if(fangxiang==0)//向右

{

try

{

x+=10;

snake[0].setLocation(x, y);//设置蛇头位置

if(x==weixy==weiy) //吃到食物

{

shu++;

weix=(int)(food[shu]*0.1)*60;

weiy=(int)(food[shu]%10)*40;

repaint(); //重绘下一个食物

add(snake[shu]); //增加蛇节数和位置

snake[shu].setBounds(snake[shu-1].getBounds());

}

thread.sleep(100); //睡眠100ms

}

catch(Exception e){}

}

else if(fangxiang==1)//向左

{

try

{

x-=10;

snake[0].setLocation(x, y);

if(x==weixy==weiy)

{

shu++;

weix=(int)(food[shu]*0.1)*60;

weiy=(int)(food[shu]%10)*40;

repaint();

add(snake[shu]);

snake[shu].setBounds(snake[shu-1].getBounds());

}

thread.sleep(100);

}

catch(Exception e){}

}

else if(fangxiang==2)//向上

{

try

{

y-=10;

snake[0].setLocation(x, y);

if(x==weixy==weiy)

{

shu++;

weix=(int)(food[shu]*0.1)*60;

weiy=(int)(food[shu]%10)*40;

repaint();

add(snake[shu]);

snake[shu].setBounds(snake[shu-1].getBounds());

}

thread.sleep(100);

}

catch(Exception e){}

}

else if(fangxiang==3)//向下

{

try

{

y+=10;

snake[0].setLocation(x, y);

if(x==weixy==weiy)

{

shu++;

weix=(int)(food[shu]*0.1)*60;

weiy=(int)(food[shu]%10)*40;

repaint();

add(snake[shu]);

snake[shu].setBounds(snake[shu-1].getBounds());

}

thread.sleep(100);

}

catch(Exception e){}

}

int num1=shu;

while(num11)//判断是否咬自己的尾巴

{

if(snake[num1].getBounds().x==snake[0].getBounds().xsnake[num1].getBounds().y==snake[0].getBounds().y)

{

t=false;

result=false;

repaint();

}

num1--;

}

if(x0||x=this.getWidth()||y0||y=this.getHeight())//判断是否撞墙

{

t=false;

result=false;

repaint();

}

int num=shu;

while(num0) //设置蛇节位置

{

snake[num].setBounds(snake[num-1].getBounds());

num--;

}

if(shu==15) //如果蛇节数等于15则胜利

{

t=false;

result=true;

repaint();

}

}

}

public void keyPressed(KeyEvent e) //按下键盘方向键

{

if(e.getKeyCode()==KeyEvent.VK_RIGHT)//右键

{

if(fangxiang!=1)//如果先前方向不为左

fangxiang=0;

}

else if(e.getKeyCode()==KeyEvent.VK_LEFT)

{ if(fangxiang!=0)

fangxiang=1;

}

else if(e.getKeyCode()==KeyEvent.VK_UP)

{ if(fangxiang!=3)

fangxiang=2;

}

else if(e.getKeyCode()==KeyEvent.VK_DOWN)

{ if(fangxiang!=2)

fangxiang=3;

}

}

public void keyTyped(KeyEvent e)

{

}

public void keyReleased(KeyEvent e)

{

}

public void paint(Graphics g) //在面板上绘图

{

int x1=this.getWidth()-1;

int y1=this.getHeight()-1;

g.setColor(Color.red);

g.fillOval(weix, weiy, 10, 10);//食物

g.drawRect(0, 0, x1, y1); //墙

if(t==falseresult==false)

g.drawString("GAME OVER!", 250, 200);//输出游戏失败

else if(t==falseresult==true)

g.drawString("YOU WIN!", 250, 200);//输出游戏成功

}

}

class MyWindow extends Frame implements ActionListener//自定义窗口类

{

MyPanel my;

Button btn;

Panel panel;

MyWindow()

{

super("GreedSnake");

my=new MyPanel();

btn=new Button("begin");

panel=new Panel();

btn.addActionListener(this);

panel.add(new Label("begin后请按Tab键选定蛇"));

panel.add(btn);

panel.add(new Label("按上下左右键控制蛇行动"));

add(panel,BorderLayout.NORTH);

add(my,BorderLayout.CENTER);

setBounds(100,100,610,500);

setVisible(true);

validate();

addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{

System.exit(0);

}

});

}

public void actionPerformed(ActionEvent e)//按下begin按钮

{

if(e.getSource()==btn)

{

try

{

my.thread.start(); //开始线程

my.validate();

}

catch(Exception ee){}

}

}

}

跪求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

请楼主采纳

求java小游戏源代码

表1. CheckerDrag.java

// CheckerDrag.javaimport java.awt.*;import java.awt.event.*;public class CheckerDrag extends java.applet.Applet{ // Dimension of checkerboard square. // 棋盘上每个小方格的尺寸 final static int SQUAREDIM = 40; // Dimension of checkerboard -- includes black outline. // 棋盘的尺寸 – 包括黑色的轮廓线 final static int BOARDDIM = 8 * SQUAREDIM + 2; // Dimension of checker -- 3/4 the dimension of a square. // 棋子的尺寸 – 方格尺寸的3/4 final static int CHECKERDIM = 3 * SQUAREDIM / 4; // Square colors are dark green or white. // 方格的颜色为深绿色或者白色 final static Color darkGreen = new Color (0, 128, 0); // Dragging flag -- set to true when user presses mouse button over checker // and cleared to false when user releases mouse button. // 拖动标记 --当用户在棋子上按下鼠标按键时设为true, // 释放鼠标按键时设为false boolean inDrag = false; // Left coordinate of checkerboard's upper-left corner. // 棋盘左上角的左方向坐标 int boardx; // Top coordinate of checkerboard's upper-left corner. //棋盘左上角的上方向坐标 int boardy; // Left coordinate of checker rectangle origin (upper-left corner). // 棋子矩形原点(左上角)的左方向坐标 int ox; // Top coordinate of checker rectangle origin (upper-left corner). // 棋子矩形原点(左上角)的上方向坐标 int oy; // Left displacement between mouse coordinates at time of press and checker // rectangle origin. // 在按键时的鼠标坐标与棋子矩形原点之间的左方向位移 int relx; // Top displacement between mouse coordinates at time of press and checker // rectangle origin. // 在按键时的鼠标坐标与棋子矩形原点之间的上方向位移 int rely; // Width of applet drawing area. // applet绘图区域的宽度 int width; // Height of applet drawing area. // applet绘图区域的高度 int height; // Image buffer. // 图像缓冲 Image imBuffer; // Graphics context associated with image buffer. // 图像缓冲相关联的图形背景 Graphics imG; public void init () { // Obtain the size of the applet's drawing area. // 获取applet绘图区域的尺寸 width = getSize ().width; height = getSize ().height; // Create image buffer. // 创建图像缓冲 imBuffer = createImage (width, height); // Retrieve graphics context associated with image buffer. // 取出图像缓冲相关联的图形背景 imG = imBuffer.getGraphics (); // Initialize checkerboard's origin, so that board is centered. // 初始化棋盘的原点,使棋盘在屏幕上居中 boardx = (width - BOARDDIM) / 2 + 1; boardy = (height - BOARDDIM) / 2 + 1; // Initialize checker's rectangle's starting origin so that checker is // centered in the square located in the top row and second column from // the left. // 初始化棋子矩形的起始原点,使得棋子在第一行左数第二列的方格里居中 ox = boardx + SQUAREDIM + (SQUAREDIM - CHECKERDIM) / 2 + 1; oy = boardy + (SQUAREDIM - CHECKERDIM) / 2 + 1; // Attach a mouse listener to the applet. That listener listens for // mouse-button press and mouse-button release events. // 向applet添加一个用来监听鼠标按键的按下和释放事件的鼠标监听器 addMouseListener (new MouseAdapter () { public void mousePressed (MouseEvent e) { // Obtain mouse coordinates at time of press. // 获取按键时的鼠标坐标 int x = e.getX (); int y = e.getY (); // If mouse is over draggable checker at time // of press (i.e., contains (x, y) returns // true), save distance between current mouse // coordinates and draggable checker origin // (which will always be positive) and set drag // flag to true (to indicate drag in progress). // 在按键时如果鼠标位于可拖动的棋子上方 // (也就是contains (x, y)返回true),则保存当前 // 鼠标坐标与棋子的原点之间的距离(始终为正值)并且 // 将拖动标志设为true(用来表明正处在拖动过程中) if (contains (x, y)) { relx = x - ox; rely = y - oy; inDrag = true; } } boolean contains (int x, int y) { // Calculate center of draggable checker. // 计算棋子的中心位置 int cox = ox + CHECKERDIM / 2; int coy = oy + CHECKERDIM / 2; // Return true if (x, y) locates with bounds // of draggable checker. CHECKERDIM / 2 is the // radius. // 如果(x, y)仍处于棋子范围内则返回true // CHECKERDIM / 2为半径 return (cox - x) * (cox - x) + (coy - y) * (coy - y) CHECKERDIM / 2 * CHECKERDIM / 2; } public void mouseReleased (MouseEvent e) { // When mouse is released, clear inDrag (to // indicate no drag in progress) if inDrag is // already set. // 当鼠标按键被释放时,如果inDrag已经为true, // 则将其置为false(用来表明不在拖动过程中) if (inDrag) inDrag = false; } }); // Attach a mouse motion listener to the applet. That listener listens // for mouse drag events. //向applet添加一个用来监听鼠标拖动事件的鼠标运动监听器 addMouseMotionListener (new MouseMotionAdapter () { public void mouseDragged (MouseEvent e) { if (inDrag) { // Calculate draggable checker's new // origin (the upper-left corner of // the checker rectangle). // 计算棋子新的原点(棋子矩形的左上角) int tmpox = e.getX () - relx; int tmpoy = e.getY () - rely; // If the checker is not being moved // (at least partly) off board, // assign the previously calculated // origin (tmpox, tmpoy) as the // permanent origin (ox, oy), and // redraw the display area (with the // draggable checker at the new // coordinates). // 如果棋子(至少是棋子的一部分)没有被 // 移出棋盘,则将之前计算的原点 // (tmpox, tmpoy)赋值给永久性的原点(ox, oy), // 并且刷新显示区域(此时的棋子已经位于新坐标上) if (tmpox boardx tmpoy boardy tmpox + CHECKERDIM boardx + BOARDDIM tmpoy + CHECKERDIM boardy + BOARDDIM) { ox = tmpox; oy = tmpoy; repaint (); } } } }); } public void paint (Graphics g) { // Paint the checkerboard over which the checker will be dragged. // 在棋子将要被拖动的位置上绘制棋盘 paintCheckerBoard (imG, boardx, boardy); // Paint the checker that will be dragged. // 绘制即将被拖动的棋子 paintChecker (imG, ox, oy); // Draw contents of image buffer. // 绘制图像缓冲的内容 g.drawImage (imBuffer, 0, 0, this); } void paintChecker (Graphics g, int x, int y) { // Set checker shadow color. // 设置棋子阴影的颜色 g.setColor (Color.black); // Paint checker shadow. // 绘制棋子的阴影 g.fillOval (x, y, CHECKERDIM, CHECKERDIM); // Set checker color. // 设置棋子颜色 g.setColor (Color.red); // Paint checker. // 绘制棋子 g.fillOval (x, y, CHECKERDIM - CHECKERDIM / 13, CHECKERDIM - CHECKERDIM / 13); } void paintCheckerBoard (Graphics g, int x, int y) { // Paint checkerboard outline. // 绘制棋盘轮廓线 g.setColor (Color.black); g.drawRect (x, y, 8 * SQUAREDIM + 1, 8 * SQUAREDIM + 1); // Paint checkerboard. // 绘制棋盘 for (int row = 0; row 8; row++) { g.setColor (((row 1) != 0) ? darkGreen : Color.white); for (int col = 0; col 8; col++) { g.fillRect (x + 1 + col * SQUAREDIM, y + 1 + row * SQUAREDIM, SQUAREDIM, SQUAREDIM); g.setColor ((g.getColor () == darkGreen) ? Color.white : darkGreen); } } } // The AWT invokes the update() method in response to the repaint() method // calls that are made as a checker is dragged. The default implementation // of this method, which is inherited from the Container class, clears the // applet's drawing area to the background color prior to calling paint(). // This clearing followed by drawing causes flicker. CheckerDrag overrides // update() to prevent the background from being cleared, which eliminates // the flicker. // AWT调用了update()方法来响应拖动棋子时所调用的repaint()方法。该方法从 // Container类继承的默认实现会在调用paint()之前,将applet的绘图区域清除 // 为背景色,这种绘制之后的清除就导致了闪烁。CheckerDrag重写了update()来 // 防止背景被清除,从而消除了闪烁。 public void update (Graphics g) { paint (g); }}

java小游戏编程

/**

* File: ControlPanel.java

* User:相思无偿

* Date: 2004.12.3

* Describe: 俄罗斯方块的 Java 实现

*/

import javax.swing.*;

import javax.swing.border.Border;

import javax.swing.border.EtchedBorder;

import java.awt.*;

import java.awt.event.*;

/**

* 控制面板类,继承自JPanel.

* 上边安放预显窗口、等级、得分、控制按钮

* 主要用来控制游戏进程。

*/

class ControlPanel extends JPanel {

private JTextField

tfLevel = new JTextField("" + ErsBlocksGame.DEFAULT_LEVEL),

tfScore = new JTextField("0");

private JButton

btPlay = new JButton("Play"),

btPause = new JButton("Pause"),

btStop = new JButton("Stop"),

btTurnLevelUp = new JButton("Turn hard"),

btTurnLevelDown = new JButton("Turn easy");

private JPanel plTip = new JPanel(new BorderLayout());

private TipPanel plTipBlock = new TipPanel();

private JPanel plInfo = new JPanel(new GridLayout(4, 1));

private JPanel plButton = new JPanel(new GridLayout(5, 1));

private Timer timer;

private ErsBlocksGame game;

private Border border = new EtchedBorder(

EtchedBorder.RAISED, Color.white, new Color(148, 145, 140));

/**

* 控制面板类的构造函数

* @param game ErsBlocksGame, ErsBoxesGame类的一个实例引用,

* 方便直接控制ErsBoxesGame类的行为。

*/

public ControlPanel(final ErsBlocksGame game) {

setLayout(new GridLayout(3, 1, 0, 4));

this.game = game;

plTip.add(new JLabel("Next block"), BorderLayout.NORTH);

plTip.add(plTipBlock);

plTip.setBorder(border);

plInfo.add(new JLabel("Level"));

plInfo.add(tfLevel);

plInfo.add(new JLabel("Score"));

plInfo.add(tfScore);

plInfo.setBorder(border);

tfLevel.setEditable(false);

tfScore.setEditable(false);

plButton.add(btPlay);

plButton.add(btPause);

plButton.add(btStop);

plButton.add(btTurnLevelUp);

plButton.add(btTurnLevelDown);

plButton.setBorder(border);

add(plTip);

add(plInfo);

add(plButton);

addKeyListener(new ControlKeyListener());

btPlay.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent ae) {

game.playGame();

}

});

btPause.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent ae) {

if (btPause.getText().equals(new String("Pause"))) {

game.pauseGame();

} else {

game.resumeGame();

}

}

});

btStop.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent ae) {

game.stopGame();

}

});

btTurnLevelUp.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent ae) {

try {

int level = Integer.parseInt(tfLevel.getText());

if (level ErsBlocksGame.MAX_LEVEL)

tfLevel.setText("" + (level + 1));

} catch (NumberFormatException e) {

}

requestFocus();

}

});

btTurnLevelDown.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent ae) {

try {

int level = Integer.parseInt(tfLevel.getText());

if (level 1)

tfLevel.setText("" + (level - 1));

} catch (NumberFormatException e) {

}

requestFocus();

}

});

addComponentListener(new ComponentAdapter() {

public void componentResized(ComponentEvent ce) {

plTipBlock.fanning();

}

});

timer = new Timer(500, new ActionListener() {

public void actionPerformed(ActionEvent ae) {

tfScore.setText("" + game.getScore());

int scoreForLevelUpdate =

game.getScoreForLevelUpdate();

if (scoreForLevelUpdate = ErsBlocksGame.PER_LEVEL_SCORE

scoreForLevelUpdate 0)

game.levelUpdate();

}

});

timer.start();

}

/**

* 设置预显窗口的样式,

* @param style int,对应ErsBlock类的STYLES中的28个值

*/

public void setTipStyle(int style) {

plTipBlock.setStyle(style);

}

/**

* 取得用户设置的游戏等级。

* @return int, 难度等级,1 - ErsBlocksGame.MAX_LEVEL

*/

public int getLevel() {

int level = 0;

try {

level = Integer.parseInt(tfLevel.getText());

} catch (NumberFormatException e) {

}

return level;

}

/**

* 让用户修改游戏难度等级。

* @param level 修改后的游戏难度等级

*/

public void setLevel(int level) {

if (level 0 level 11) tfLevel.setText("" + level);

}

/**

* 设置"开始"按钮的状态。

*/

public void setPlayButtonEnable(boolean enable) {

btPlay.setEnabled(enable);

}

public void setPauseButtonLabel(boolean pause) {

btPause.setText(pause ? "Pause" : "Continue");

}

/**

* 重置控制面板

*/

public void reset() {

tfScore.setText("0");

plTipBlock.setStyle(0);

}

/**

* 重新计算TipPanel里的boxes[][]里的小框的大小

*/

public void fanning() {

plTipBlock.fanning();

}

/**

* 预显窗口的实现细节类

*/

private class TipPanel extends JPanel {

private Color backColor = Color.darkGray, frontColor = Color.lightGray;

private ErsBox[][] boxes =

new ErsBox[ErsBlock.BOXES_ROWS][ErsBlock.BOXES_COLS];

private int style, boxWidth, boxHeight;

private boolean isTiled = false;

/**

* 预显窗口类构造函数

*/

public TipPanel() {

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

for (int j = 0; j boxes[i].length; j++)

boxes[i][j] = new ErsBox(false);

}

}

/**

* 预显窗口类构造函数

* @param backColor Color, 窗口的背景色

* @param frontColor Color, 窗口的前景色

*/

public TipPanel(Color backColor, Color frontColor) {

this();

this.backColor = backColor;

this.frontColor = frontColor;

}

/**

* 设置预显窗口的方块样式

* @param style int,对应ErsBlock类的STYLES中的28个值

*/

public void setStyle(int style) {

this.style = style;

repaint();

}

/**

* 覆盖JComponent类的函数,画组件。

* @param g 图形设备环境

*/

public void paintComponent(Graphics g) {

super.paintComponent(g);

if (!isTiled) fanning();

int key = 0x8000;

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

for (int j = 0; j boxes[i].length; j++) {

Color color = (((key style) != 0) ? frontColor : backColor);

g.setColor(color);

g.fill3DRect(j * boxWidth, i * boxHeight,

boxWidth, boxHeight, true);

key = 1;

}

}

}

/**

* 根据窗口的大小,自动调整方格的尺寸

*/

public void fanning() {

boxWidth = getSize().width / ErsBlock.BOXES_COLS;

boxHeight = getSize().height / ErsBlock.BOXES_ROWS;

isTiled = true;

}

}

private class ControlKeyListener extends KeyAdapter {

public void keyPressed(KeyEvent ke) {

if (!game.isPlaying()) return;

ErsBlock block = game.getCurBlock();

switch (ke.getKeyCode()) {

case KeyEvent.VK_DOWN:

block.moveDown();

break;

case KeyEvent.VK_LEFT:

block.moveLeft();

break;

case KeyEvent.VK_RIGHT:

block.moveRight();

break;

case KeyEvent.VK_UP:

block.turnNext();

break;

default:

break;

}

}

}

}

JAVA小游戏程序代码

这个是比较有名的那个烟花,不知道你有没有用:

建个工程,以Fireworks为类即可

import java.awt.*;

import java.applet.*;

import java.awt.event.*;

import javax.swing.*;

public class Fireworks extends Applet implements MouseListener,Runnable

{

int x,y;

int top,point;

/**

*对小程序进行变量和颜色的初始化。

*/

public void init()

{

x = 0;

y = 0;

//设置背景色为黑色

setBackground(Color.black);

addMouseListener(this);

}

public void paint(Graphics g)

{

}

/**

*使该程序可以作为应用程序运行。

*/

public static void main(String args[]) {

Fireworks applet = new Fireworks();

JFrame frame = new JFrame("TextAreaNew");

frame.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e){

System.exit(0);

}

});

frame.getContentPane().add(

applet, BorderLayout.CENTER);

frame.setSize(800,400);

applet.init();

applet.start();

frame.setVisible(true);

}

/**

*程序主线程,对一个烟花进行绘制。

*/

public void run()

{

//变量初始化

Graphics g1;

g1 = getGraphics();

int y_move,y_click,x_click;

int v;

x_click = x;

y_click = y;

y_move = 400;

v = 3;

int r,g,b;

while(y_move y_click)

{

g1.setColor(Color.black);

g1.fillOval(x_click,y_move,5,5);

y_move -= 5;

r = (((int)Math.round(Math.random()*4321))%200)+55;

g = (((int)Math.round(Math.random()*4321))%200)+55;

b = (((int)Math.round(Math.random()*4321))%200)+55;

g1.setColor(new Color(r,g,b));

g1.fillOval(x_click,y_move,5,5);

for(int j = 0 ;j=10;j++)

{

if(r55) r -= 20;

if(g55) g -= 20;

if(b55) b -=20;

g1.setColor(new Color(r,g,b));

g1.fillOval(x_click,y_move+j*5,5,5);

}

g1.setColor(Color.black);

g1.fillOval(x_click,y_move+5*10,5,5);

try

{

Thread.currentThread().sleep(v++);

} catch (InterruptedException e) {}

}

for(int j=12;j=0;j--)

{

g1.setColor(Color.black);

g1.fillOval(x_click,y_move+(j*5),5,5);

try

{

Thread.currentThread().sleep((v++)/3);

} catch (InterruptedException e) {}

}

y_move = 400;

g1.setColor(Color.black);

while(y_move y_click)

{

g1.fillOval(x_click-2,y_move,9,5);

y_move -= 5;

}

v = 15;

for(int i=0;i=25;i++)

{

r = (((int)Math.round(Math.random()*4321))%200)+55;

g = (((int)Math.round(Math.random()*4321))%200)+55;

b = (((int)Math.round(Math.random()*4321))%200)+55;

g1.setColor(new Color(r,g,b));

g1.drawOval(x_click-3*i,y_click-3*i,6*i,6*i);

if(i23)

{

g1.drawOval(x_click-3*(i+1),y_click-3*(i+1),6*(i+1),6*(i+1));

g1.drawOval(x_click-3*(i+2),y_click-3*(i+2),6*(i+2),6*(i+2));

}

try

{

Thread.currentThread().sleep(v++);

} catch (InterruptedException e) {}

g1.setColor(Color.black);

g1.drawOval(x_click-3*i,y_click-3*i,6*i,6*i);

}

}

/**

*对鼠标事件进行监听。

*临听其鼠标按下事件。

*当按下鼠标时,产生一个新线程。

*/

public void mousePressed(MouseEvent e)

{

x = e.getX();

y = e.getY();

Thread one;

one = new Thread(this);

one.start();

one = null;

}

/**

*实现MouseListener接中的方法。为一个空方法。

*/

public void mouseReleased(MouseEvent e)

{

}

/**

*实现MouseListener接中的方法。为一个空方法。

*/

public void mouseEntered(MouseEvent e)

{

}

/**

*实现MouseListener接中的方法。为一个空方法。

*/

public void mouseExited(MouseEvent e)

{

}

/**

*实现MouseListener接中的方法。为一个空方法。

*/

public void mouseClicked(MouseEvent e)

{

}

}

怎么用JAVA来写一个小游戏程序

import java.util.*;

import java.io.*;

public class CaiShu{

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

Random a=new Random();

int num=a.nextInt(100);

System.out.println("请输入一个100以内的整数:");

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

BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));

String str=bf.readLine();

int shu=Integer.parseInt(str);

if (shunum)

System.out.println("输入的数大了,输小点的!");

else if (shunum)

System.out.println("输入的数小了,输大点的!");

else {

System.out.println("恭喜你,猜对了!");

if (i=2)

System.out.println("你真是个天才!");

else if (i=6)

System.out.println("还将就,你过关了!");

else if (i=8)

System.out.println("但是你还……真笨!");

else

System.out.println("你和猪没有两样了!"); break;}

}

} }

java小游戏代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java小游戏代码没有素材的、java小游戏代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/14380.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载