栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java界面化编程1(简单的弹球小游戏)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java界面化编程1(简单的弹球小游戏)

游戏运行界面

 游戏结束界面

 游戏源码

package com.java.Jframe;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.frame;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.Timer;

public class Jframetest15 {
	
	
	//桌面宽度
	final static int tabke_x=400;//长
	final static int tabke_y=400;//宽

	//拍子
	final static int ballct_x=100;//长
	final static int ballct_y=20;//宽
	//球
	final static int ball_size=16;
	
	//定义变量记录球坐标
	static int ballx=120;
	static int bally=20;
	//定义变量记录球的移动速度
	static int seepy=10;
	static int seepx=5;
	
	static //定义变量记录球拍坐标
	 int ballctx=120;
	final static int ballcty=380;
	
	//定义变量辨识游戏是否结束
	static Boolean isover=true;
	
	static //定义时间计时器
	Timer timer;
	
	public static void init() {
		// 创建窗口
		frame frame = new frame();
		
		//定义类充当画布
		class Mycanvas extends Canvas{
			
			public void paint(Graphics g) {
				
				if(isover) {//游戏中
					
					
					//绘制小球
					g.setColor(Color.black);
					g.fillOval(ballx,bally, ball_size, ball_size);//小球大小和起始位置
					
					//绘制球拍
					g.setColor(Color.pink);
					g.fillRect(ballctx, ballcty, ballct_x, ballct_y);
					
					
					
					
				}else {
					//游戏结束
					g.setColor(Color.red);
					g.setFont(new Font("Times",Font.BOLD,30));//设置字迹大小
					g.drawString("游戏结束!", 150, 200);
					
				}
				
			}
		}
		//创建绘画区域
				Mycanvas draw= new Mycanvas();
				
				//组装设计逻辑
				//球拍事件
				KeyListener listener=new KeyAdapter() {
					
					public void keyPressed(KeyEvent e) {
						int keyCode=e.getKeyCode();
						if(keyCode ==KeyEvent.VK_LEFT) {
							//左移
							if(ballctx>0) {
								ballctx-=10;
							}
						}
						if(keyCode ==KeyEvent.VK_RIGHT) {
							//右移
							if(ballctx+ballct_x=(tabke_x-ball_size)) {
							seepx=-seepx;
							//x轴速度
						}
						
						if(bally<=0||(bally>ballcty-ball_size&&ballx>ballctx&&ballxballcty-ball_size&&(ballxballctx+ballct_x))
						
						{
							//结束游戏
							timer.stop();
							isover=false;
							draw.repaint();
							
						}
						//更新小球的坐标
						ballx+=seepx;
						bally+=seepy;
						draw.repaint();
						
					}
					
				};
				 timer=new Timer(100,task);//设置时间计时器控制执行的语句
			     timer.start();
				frame.addKeyListener(listener);
				draw.addKeyListener(listener);
		draw.setPreferredSize(new Dimension(tabke_x,tabke_y));
		frame.add(draw);
		
		// 设置最佳大小 pack方法
		frame.pack();
		// 设置可视化
		frame.setVisible(true);
		//设置可以关闭
		frame.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}
public static void main(String [] agrs) {
		
            init();
	}
}

若是有友友和小编一样在黑马视频的学习下写的这个小游戏,不知道有没有发现视频中的源码的小Bug,这里在小编的源码中已将Bug改了,友友们可以对比一样看看喔

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/631309.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号