小游戏

import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
public class Game
{
	public static void main(String[] args)
	{
		GameFrame frame = new GameFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
		frame.setResizable(false);
	}
}
class GameFrame extends JFrame
{
	public GameFrame()
	{
		setTitle("小游戏");
		setBounds(450,150,406,428);
		GamePanel panel = new GamePanel();
		add(panel);
		addKeyListener(panel);
	}
}
class GamePanel extends JPanel implements KeyListener/*接口...*/
{
	public static int colorFlag = 0,flag = 0;
	public static int ax1 = 0,ax2 = 360,ax3 = 0,ax4 = 360,
	ay1 = 0,ay2 = 0,ay3 = 360,ay4 = 360;
	public void paintComponent(Graphics g)
	{
		/*画出基本图形*/
		super.paintComponent(g);
		Graphics2D g2 = (Graphics2D)g;
		g2.setPaint(Color.BLUE);
		Rectangle2D rect1 = new Rectangle2D.Double(ax1,ay1,40,40);
		Rectangle2D rect2 = new Rectangle2D.Double(ax2,ay2,40,40);
		Rectangle2D rect3 = new Rectangle2D.Double(ax3,ay3,40,40);
		Rectangle2D rect4 = new Rectangle2D.Double(ax4,ay4,40,40);
		g2.fill(rect1);
		g2.fill(rect2);
		g2.fill(rect3);
		g2.fill(rect4);
		Rectangle2D stand1 = new Rectangle2D.Double(160,160,40,40);
		Rectangle2D stand2 = new Rectangle2D.Double(200,160,40,40);
		Rectangle2D stand3 = new Rectangle2D.Double(160,200,40,40);
		Rectangle2D stand4 = new Rectangle2D.Double(200,200,40,40);
		g2.setPaint(Color.RED);
		if(colorFlag==1)
			g2.fill(rect1);
		if(colorFlag==2)
			g2.fill(rect2);
		if(colorFlag==3)
			g2.fill(rect3);
		if(colorFlag==4)
			g2.fill(rect4);
		g2.draw(stand1);
		g2.draw(stand2);
		g2.draw(stand3);
		g2.draw(stand4);
		/*结束游戏*/
		if(ay1>=160&&ay1<=200&&ax4>=160&&ax4<=200&&ax3>=160&&ax3<=200&&ax2>=160
			&&ax2<=200&&ax1>=160&&ax1<=200&&ay3>=160&&ay3<=200&&ay2>=160&&ay2<=200&&ay4>=160&&ay4<=200)
		{
			g2.drawString("恭喜你!游戏结束!",155,120);
			flag = 1;
		}
	}
	public void keyPressed(KeyEvent e) 
		{
			if(flag==0)
			{
				int k = e.getKeyCode();
						if(k==KeyEvent.VK_1||k==KeyEvent.VK_NUMPAD1)
							colorFlag = 1;
						else if(k==KeyEvent.VK_2||k==KeyEvent.VK_NUMPAD2)
							colorFlag = 2;
						else if(k==KeyEvent.VK_3||k==KeyEvent.VK_NUMPAD3)
							colorFlag = 3;
						else if(k==KeyEvent.VK_4||k==KeyEvent.VK_NUMPAD4)
							colorFlag = 4;
						if(k==KeyEvent.VK_UP)/*向上移动*/
						{
							if(colorFlag==1)
								ay1-=40;
								if(ay1>=0&&ay1<=360)
									if((ax1==ax2&&ay1==ay2)||(ax1==ax3&&ay1==ay3)||(ax1==ax4&&ay1==ay4))
										ay1+=40;
									else{}
								else
									ay1+=40;
							if(colorFlag==2)
								ay2-=40;
								if(ay2>=0&&ay2<=360)
									if((ax1==ax2&&ay1==ay2)||(ax2==ax3&&ay2==ay3)||(ax2==ax4&&ay2==ay4))
										ay2+=40;
									else{}
								else
									ay2+=40;
							if(colorFlag==3)
								ay3-=40;
								if(ay3>=0&&ay3<=360)
									if((ax3==ax2&&ay3==ay2)||(ax1==ax3&&ay1==ay3)||(ax3==ax4&&ay3==ay4))
										ay3+=40;
									else{}
								else
									ay3+=40;
							if(colorFlag==4)
								ay4-=40;
								if(ay4>=0&&ay4<=360)
									if((ax4==ax2&&ay4==ay2)||(ax4==ax3&&ay4==ay3)||(ax1==ax4&&ay1==ay4))
										ay4+=40;
									else{}
								else
									ay4+=40;
						}
						if(k==KeyEvent.VK_DOWN)/*向下移动*/
						{
							if(colorFlag==1)
								ay1+=40;
								if(ay1>=0&&ay1<=360)
									if((ax1==ax2&&ay1==ay2)||(ax1==ax3&&ay1==ay3)||(ax1==ax4&&ay1==ay4))
										ay1-=40;
									else{}
								else
									ay1-=40;
							if(colorFlag==2)
								ay2+=40;
								if(ay2>=0&&ay2<=360)
									if((ax1==ax2&&ay1==ay2)||(ax2==ax3&&ay2==ay3)||(ax2==ax4&&ay2==ay4))
										ay2-=40;
									else{}
								else
									ay2-=40;
							if(colorFlag==3)
								ay3+=40;
								if(ay3>=0&&ay3<=360)
									if((ax3==ax2&&ay3==ay2)||(ax1==ax3&&ay1==ay3)||(ax3==ax4&&ay3==ay4))
										ay3-=40;
									else{}
								else
									ay3-=40;
							if(colorFlag==4)
								ay4+=40;
								if(ay4>=0&&ay4<=360)
									if((ax4==ax2&&ay4==ay2)||(ax4==ax3&&ay4==ay3)||(ax1==ax4&&ay1==ay4))
										ay4-=40;
									else{}
								else
									ay4-=40;
						}
						if(k==KeyEvent.VK_RIGHT)/*向右移动*/
						{
							if(colorFlag==1)
								ax1+=40;
								if(ax1>=0&&ax1<=360)
									if((ax1==ax2&&ay1==ay2)||(ax1==ax3&&ay1==ay3)||(ax1==ax4&&ay1==ay4))
										ax1-=40;
									else{}
								else
									ax1-=40;
							if(colorFlag==2)
								ax2+=40;
								if(ax2>=0&&ax2<=360)
									if((ax1==ax2&&ay1==ay2)||(ax2==ax3&&ay2==ay3)||(ax2==ax4&&ay2==ay4))
										ax2-=40;
									else{}
								else
									ax2-=40;
							if(colorFlag==3)
								ax3+=40;
								if(ax3>=0&&ax3<=360)
									if((ax3==ax2&&ay3==ay2)||(ax1==ax3&&ay1==ay3)||(ax3==ax4&&ay3==ay4))
										ax3-=40;
									else{}
								else
									ax3-=40;
							if(colorFlag==4)
								ax4+=40;
								if(ax4>=0&&ax4<=360)
									if((ax4==ax2&&ay4==ay2)||(ax4==ax3&&ay4==ay3)||(ax1==ax4&&ay1==ay4))
										ax4-=40;
									else{}
								else
									ax4-=40;
						}
						if(k==KeyEvent.VK_LEFT)/*向左移动*/
						{
							if(colorFlag==1)
								ax1-=40;
								if(ax1>=0&&ax1<=360)
									if((ax1==ax2&&ay1==ay2)||(ax1==ax3&&ay1==ay3)||(ax1==ax4&&ay1==ay4))
										ax1+=40;
									else{}
								else
									ax1+=40;
							if(colorFlag==2)
								ax2-=40;
								if(ax2>=0&&ax2<=360)
									if((ax1==ax2&&ay1==ay2)||(ax2==ax3&&ay2==ay3)||(ax2==ax4&&ay2==ay4))
										ax2+=40;
									else{}
								else
									ax2+=40;
							if(colorFlag==3)
								ax3-=40;
								if(ax3>=0&&ax3<=360)
									if((ax3==ax2&&ay3==ay2)||(ax1==ax3&&ay1==ay3)||(ax3==ax4&&ay3==ay4))
										ax3+=40;
									else{}
								else
									ax3+=40;
							if(colorFlag==4)
								ax4-=40;
								if(ax4>=0&&ax4<=360)
									if((ax4==ax2&&ay4==ay2)||(ax4==ax3&&ay4==ay3)||(ax1==ax4&&ay1==ay4))
										ax4+=40;
									else{}
								else
									ax4+=40;
						}
						repaint();/*重新绘画*/}
		}
	public void keyTyped(KeyEvent e) {}
	public void keyReleased(KeyEvent e) {}
}
超简单的游戏,估计很少有人甚至没人会玩。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值