赛车游戏java_Java 赛车游戏
将全部图片考到D盘下
1.[文件] GPXWin.java ~ 4KB 下载(711)
package GPX;
//敌人图片均为120*55
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.security.Key;
import java.util.ArrayList;
import java.util.List;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JPanel;
public class GPXWin extends JPanel implements ActionListener,KeyListener,Runnable{
//玩家分数
private int score;
//这个变量是用来轮流显示两张马路图片的
private int Road_Flag=1;
Road road=new Road();
JButton startGame=new JButton("开始");
JButton stopGame=new JButton("结束");
Player player;
//游戏线程
Thread nThread;
Enemy enemy=new Enemy();
BufferedImage gameover;
File gameover_file=new File("D:/gameover.jpg");
public GPXWin()
{
this.score=0;
try {
gameover=ImageIO.read(gameover_file);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
player=new Player();
this.add(startGame);
this.add(stopGame);
startGame.addActionListener(this);
stopGame.addActionListener(this);
this.addKeyListener(this);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawString("您的分数是:"+score,30,30);
if(!Check_Hit())
{
repaint();
g.drawImage(gameover,200,80,null);
return;
}
g.drawRect(30, 80, 900, 600);
road.Draw(g,Road_Flag);
player.Draw(g);
Check_Limit();
enemy.Draw(g);
}
@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_UP:
this.player.Move(0, -5);
break;
case KeyEvent.VK_DOWN:
this.player.Move(0, 5);
break;
case KeyEvent.VK_LEFT:
this.player.Move(-5, 0);
break;
case KeyEvent.VK_RIGHT:
this.player.Move(5, 0);
break;
default:
break;
}
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==startGame)
{
nThread=new Thread(this);
nThread.start();
this.requestFocus();
repaint();
}
if(e.getSource()==stopGame)
{
System.exit(0);
}
}
//这个方法用来检测敌人是否出屏幕
private void Check_Limit()
{
if(this.enemy.getY()+100>=680)
{
this.enemy=null;
this.enemy=new Enemy();
}
}
//判定相撞
private boolean Check_Hit()
{
//四种情况判定
boolean left_up=enemy.getY()+120>player.getY()&&enemy.getX()+55>player.getX()&&enemy.getY()
boolean right_up=enemy.getX()>player.getX()&&enemy.getX()player.getY()&&enemy.getY()+120
boolean left_down=enemy.getX()+55>player.getX()&&enemy.getX()+55enemy.getY()&&player.getY()+109
boolean right_down=player.getX()+53>enemy.getX()&&player.getX()+53enemy.getY()&&player.getY()+109
if(left_up||right_up||left_down||right_down)
{
nThread.stop();
enemy=null;
player=null;
road=null;
return false;
}
return true;
}
@Override
public void run() {
while(true)
{
this.score+=10;
if(Road_Flag==1)
{
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Road_Flag=2;
repaint();
}
if(Road_Flag==2)
{
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Road_Flag=1;
repaint();
}
}
}
}
2.[文件] Enemy.java ~ 2KB 下载(456)
package GPX;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Random;
import javax.imageio.ImageIO;
public class Enemy {
private int x;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
private int y;
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
Random rdm_x=new Random();//敌人只需让x坐标为随机的
Random rdm_car=new Random();//车的类型也是随机的
//有四个敌人,随机产生
File file1=new File("D:/enemy1.jpg");
File file2=new File("D:/enemy2.jpg");
File file3=new File("D:/enemy3.jpg");
File file4=new File("D:/enemy4.jpg");
private BufferedImage imgEnemy;
public Enemy()
{
y=80;
x=rdm_x.nextInt(500)+201;
//随机产生一种车
switch (rdm_car.nextInt(4))
{
case 0:
try {
imgEnemy=ImageIO.read(file1);
} catch (IOException e) {
e.printStackTrace();
}
break;
case 1:
try {
imgEnemy=ImageIO.read(file2);
} catch (IOException e) {
e.printStackTrace();
}
break;
case 2:
try {
imgEnemy=ImageIO.read(file3);
} catch (IOException e) {
e.printStackTrace();
}
break;
case 3:
try {
imgEnemy=ImageIO.read(file4);
} catch (IOException e) {
e.printStackTrace();
}
break;
default:
break;
}
}
public void Draw(Graphics g)
{
g.drawImage(imgEnemy,x,this.y,null);
y+=10;
}
}
3.[文件] GPXMain.java ~ 381B 下载(432)
package GPX;
import javax.swing.JFrame;
public class GPXMain extends JFrame {
public GPXMain()
{
GPXWin win=new GPXWin();
this.add(win);
this.setSize(1000,800);
this.setLocation(200,100);
this.setTitle("高智能方程式");
this.setVisible(true);
}
public static void main(String[] args) {
new GPXMain();
}
}
4.[文件] Player.java ~ 846B 下载(436)
package GPX;
import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class Player extends KeyAdapter {
private BufferedImage img;
private int x;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
private int y;
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public Player()
{
try {
img=ImageIO.read(new File("D:/Player.jpg"));
} catch (Exception e) {
// TODO: handle exception
}
x=400;y=400;
}
//画player的方法
public void Draw(Graphics g)
{
g.drawImage(img, this.x,this.y,null);
}
//只能左,右,上移动
public void Move(int x,int y)
{
this.x+=x;
this.y+=y;
}
}
5.[文件] Road.java ~ 1KB 下载(433)
package GPX;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Road {
//两个图片,定时互换
File file1=new File("D:/HorseRoad1.jpg");
File file2=new File("D:/HorseRoad2.jpg");
private BufferedImage imgRoad;
private int x;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
private int y;
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public Road()
{
x=200;
y=80;
}
//画自己
public void Draw(Graphics g,int flag)
{
if(flag==1)
{
try {
imgRoad=ImageIO.read(file1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
g.drawImage(imgRoad,this.x,this.y,null);
}
if(flag==2)
{
try {
imgRoad=ImageIO.read(file2);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
g.drawImage(imgRoad,this.x,this.y,null);
}
}
}
6.[文件] 图片.zip ~ 120KB 下载(1181)
7.[文件] GPX.zip ~ 4KB 下载(842)
赛车游戏java_Java 赛车游戏相关推荐
- Threejs系列--22游戏开发--沙漠赛车游戏【布置游戏开始场景】
Threejs系列--22游戏开发--沙漠赛车游戏[布置游戏开始场景] 序言 目录结构 代码一览 index.js代码 Objects.js代码 Materials.js代码 materials/Fl ...
- 《游戏学习》| 3d网页小游戏 | 公路赛车 源码
游戏介绍 基于three.js实现的3d网页游戏,适配移动端和pc端网页,可以选择简单.普通.困难.地狱四个游戏难度等级,通过控制左右,超过其他车辆得分. 游戏截图 游戏主页 游戏界面 结束界面 项目 ...
- 【网单服务端】团队索尼克赛车PC端赛车类游戏单机服务端
[网单服务端]团队索尼克赛车PC端赛车类游戏单机服务端,应该有人喜欢这类游戏 下载链接:https://pan.baidu.com/s/1ds_xFq1Rd1_xC4515BRGXw 提取码:soh ...
- html5赛车小游戏,H5赛车游戏大全_h5赛车小游戏大全_好玩的赛车h5游戏_爱手游网...
街头赛车比赛,体验不一样的赛车刺激感.游戏中,玩家通过适时踩下油门来获取前进的动力.提前到达终点打败对手,即可获得丰富的金币奖励.通过这些金币玩家可以购置新车和升级赛车装备,听着是不是已经欲罢不能也想 ...
- 【Iphone 游戏开发】游戏引擎剖析
为什么80%的码农都做不了架构师?>>> 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame. ...
- android 开游艇游戏,游艇狂飙游戏-游艇狂飙安卓版预约_第一手游网
游艇狂飙是一款玩家将会驾驶着游艇开始精彩比赛的休闲竞速类游戏,游艇狂飙里玩家可以获得非常帅气的游艇来进行精彩的比赛,发挥出自己游艇性能方面的优势,顺利的躲避各种障碍,超越前方的各个对手,顺利的到达终点 ...
- 游戏类型分类-游戏的分类有哪些
游戏类型分类 1.ACT动作游戏 2.AVG冒险游戏-AAG动作冒险游戏 3.FPS第一人称视点射击游戏 4.FTG格斗游戏 5.RPG角色扮演游戏 6.SLG策略游戏 7.MOBA多人在线战术竞技游 ...
- 多人网络游戏服务器开发基础学习笔记 I:基本知识 | 游戏设计模式 | 网游服务器层次结构 | 游戏对象序列化 | 游戏 RPC 框架 | 帧同步和状态同步
今天继续开新坑,尽管过了很多 Unix 套接字编程的坑,但是实际还是有很多不同场景和性能的需求,以及最服务器架构的内容也就接触过 preforking 和 master 带 worker 而已. 所以 ...
- 如何下载在线玩的游戏_在线下载游戏和玩游戏的最佳网站
如何下载在线玩的游戏 This week we have a list of fun websites for you. Playing games can help relieve stress a ...
最新文章
- scala入门之代码补全
- pthreads 的学习
- spring注解@service(service)括号中的service有什么用?
- 常用的SSH注解标签
- 机器学习:从感知机模型体会随机梯度下降
- JVM--类加载机制
- (14)Verilog HDL参数:parameter
- 解决RPM包依赖的几种方法
- putty+Xming使用方法
- 手动卸载office 2010 亲测有效
- 国土档案管理信息系统【档案查借阅登记】
- shiro原理_java:shiro高级篇——4
- Android开发——网络请求(一)网络请求的API、授权和方法
- 音乐计算机曲谱狂妄之人,【B】 Undertale Sans战斗曲 MEGALOVANIA狂妄之人
- 【C语言】简单的飞机游戏
- mysql修改时间为东八区,mysql时区设置为东八区
- Microbiome:南农张瑞福团队揭示放牧引起草原微生物组变化驱动土壤有机碳的转化和生产力的提升...
- 学生DW静态网页设计我的家乡——四川文化(4页) HTML+CSS+JavaScript 家乡主题HTM5网页设计作业成品
- duilib底层机制剖析:窗体类与窗体句柄的关联
- 也许孤独是冥冥中的命中注定
热门文章
- WPS word 如何取消定义网格线?无法修改行间距如何解决?
- 从零开始之uboot、移植uboot2017.01(七、board_init_r分析)
- idea如何启动vue项目
- vue-router路由有几种模式?说说它们的区别?
- 量化投资之工具篇一:Backtrader从入门到精通(8)-交易系统代码详解
- USACO2013 island travels
- 关于compose的
- 量子计算核心突破!Shor算法实现或使密码成摆设
- python小工具开发_python音乐下载小工具源码(tkinter)
- Hostapd的安装与使用