java 图片去除黑边,头顶黑边,求大神解决

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

package snake4;

import java.awt.Color;

import java.awt.Container;

import java.awt.FlowLayout;

import java.awt.Graphics;

import java.awt.GridLayout;

import java.awt.Point;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.InputEvent;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import java.util.ArrayList;

import javax.swing.*;

public class TanChiShe2 extends JFrame implements ActionListener, KeyListener,Runnable

{

private JMenuBar menuBar;

private JMenu youXiMenu,fenShuMenu,guanYuMenu;

private JMenuItem kaiShiYouXi,zuoZheItem,fenShuItem;

private int length = 5;

private Toolkit toolkit;

private int i,x,y,z,objectX,objectY,object=0,growth=0,time,j;

private int m[]=new int[50];

private int n[]=new int[50];

private Thread it = null;

private int life=0;

private int foods = 0;

private int fenshu=0;

JPanel jpanel1;

public void run() //运行

{

time=500;//蛇速度

for(i=0;i<=length-1;i++)

{

m[i]=90-i*10;n[i]=60;

}

x=m[0];

y=n[0];

z=4; //尾巴

while(it!=null)

{

check();

try

{

it.sleep(time);

}

catch(Exception ee)

{

System.out.println(z+"哎呀"); //游戏异常结束是输出哎呀

}

}

}

public TanChiShe2()

{

setVisible(true);

//创建新对象

menuBar = new JMenuBar();

Container con=getContentPane();

toolkit=getToolkit();

//游戏菜单对象

youXiMenu = new JMenu("游戏");

kaiShiYouXi = new JMenuItem("开始游戏");

//分数菜单对象

fenShuMenu = new JMenu("积分排行");

fenShuItem = new JMenuItem("最高记录");

//关于对象

guanYuMenu = new JMenu("关于");

zuoZheItem = new JMenuItem("关于作者");

//设置关于菜单

guanYuMenu.add(zuoZheItem);

//设置分数菜单

fenShuMenu.add(fenShuItem);

//设置游戏菜单

youXiMenu.add(kaiShiYouXi);

//设置主菜单

menuBar.add(youXiMenu);

menuBar.add(fenShuMenu);

menuBar.add(guanYuMenu);

//监听注册

zuoZheItem.addActionListener(this);

kaiShiYouXi.addActionListener(this);

addKeyListener(this);

fenShuItem.addActionListener(this);

//设置框架

setJMenuBar(menuBar);

setTitle("贪吃蛇");

setResizable(false);

setBounds(500,200,400,400); //框架在x=500,y=200,长=400,宽=400

validate();

setDefaultCloseOperation(EXIT_ON_CLOSE);

}

public static void main(String args[])

{

new TanChiShe2();

}

//菜单监听

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==kaiShiYouXi) //点击开始游戏

{

length = 5;

life = 0;

foods = 0;

if(it==null)

{

it=new Thread(this); //this代表蛇

it.start();

}

else if(it!=null)

{

it=null;

it= new Thread(this);

it.start();

}

}

if(e.getSource()==zuoZheItem)

{

JOptionPane.showMessageDialog(this, "梁耀彬"+"\n"+"石家卓"+"\n"+"黄辉飞");

}

if(e.getSource()==fenShuItem)

{

JOptionPane.showMessageDialog(this,"最高记录为"+fenshu+"");

}

}

//检查一下

public void check()

{

isDead();

if(it!=null)

{

if(growth==0) //成长数等于0.

{

reform();

}

else

{

upgrowth();

}

if(x==objectX&&y==objectY)

{

object=0;

growth=1;

toolkit.beep();

}

//产生食物坐标

if(object==0)

{

object=1;

objectX=(int)Math.floor(Math.random()*39)*10;

objectY=(int)Math.floor(Math.random()*29)*10+50;

}

this.repaint();

}

}

void isDead()

{

if(z==4)

{

x=x+10;

}

else if(z==3)

{

x=x-10;

}

else if(z==2)

{

y=y+10;

}

else if(z==1)

{

y=y-10;

}

if(x<0||x>390||y<50||y>390)

{

it=null;

}

for(i=1;i

{

if(m[i]==x&&n[i]==y)

{

it=null;

}

}

}

public void upgrowth()

{

if(length<50)

{

length++;

}

growth--;

time=time-10;

reform();

life+=100;

if(fenshu

{

fenshu = life;

}

foods++;

}

public void reform()

{

for(i=length-1;i>0;i--)

{

m[i]=m[i-1];

n[i]=n[i-1];

}

if(z==4)

{

m[0]=m[0]+10;

}

if(z==3)

{

m[0]=m[0]-10;

}

if(z==2)

{

n[0]=n[0]+10;

}

if(z==1)

{

n[0]=n[0]-10;

}

}

public void keyPressed(KeyEvent e)

{

if(it!=null)

{

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

{

if(z!=2)

{

z=1;

check();

}

}

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

{

if(z!=1)

{

z=2;

check();

}

}

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

{

if(z!=4)

{

z=3;

check();

}

}

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

{

if(z!=3)

{

z=4;

check();

}

}

}

}

public void keyReleased(KeyEvent e)

{

// TODO 自动生成方法存根

}

public void keyTyped(KeyEvent e)

{

// TODO 自动生成方法存根

}

public void paint(Graphics g)

{

//画图

g.setColor(Color.white); //背景

g.fillRect(0,50,400,400);

g.setColor(Color.green);

for(i=0;i<=length-1;i++)

{

g.fillRect(m[i],n[i],10,10);

}

g.setColor(Color.red); //食物

g.fillRect(objectX,objectY,10,10);

g.setColor(Color.black); //字体

g.drawString("当前 分数"+this.life,6,60);

g.drawString("当前已吃食物数"+this.foods,6,72);

} }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值