package game; import util.Config; import util.MyFrame; import java.awt.*; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.util.LinkedList; public class Tetris extends MyFrame { Block block=new Block(); Tetrisblok tetrisblok=new Tetrisblok(block); Image offScreenImage = null; Thread t=new Thread(new PaintThread()); public void luanchFrame(){ super.launchFrame(); this.addKeyListener(new KeyMonitor()); t.start(); } public void paint(Graphics g){ g.drawImage(bg,0,-100, null); for(int i = 1; i< Config.ROW; i++) { g.drawLine(0, Config.BlockSize * i, (Config.COL+7) * Config.BlockSize, Config.BlockSize * i); } for(int i=1; i<(Config.COL+7); i++) { g.drawLine(Config.BlockSize * i, 0, Config.BlockSize * i, Config.BlockSize * Config.ROW); } g.drawImage(head, 465, 100, null); tetrisblok.draw(g); //话分数区域 for(int i=0;i<7;i++){ Block block=new Block(Config.COL+i-1,Config.ROW-2); block.draw(g); } for(int i=0;i<Config.ROW;i++){ Block block=new Block(Config.COL+5,Config.ROW-2-i); block.draw(g); } Color color = g.getColor(); g.setColor(Color.gray); g.drawLine(Config.BlockSize*(Config.COL), (Config.ROW-10)*Config.BlockSize, Config.BlockSize*(Config.COL),(Config.ROW-6)*Config.BlockSize ); g.drawLine(Config.BlockSize*(Config.COL+4), (Config.ROW-10)*Config.BlockSize, Config.BlockSize*(Config.COL+4),(Config.ROW-6)*Config.BlockSize ); g.drawLine(Config.BlockSize*(Config.COL), (Config.ROW-6)*Config.BlockSize, Config.BlockSize*(Config.COL+4),(Config.ROW-6)*Config.BlockSize ); g.drawLine(Config.BlockSize*(Config.COL), (Config.ROW-10)*Config.BlockSize, Config.BlockSize*(Config.COL+4),(Config.ROW-10)*Config.BlockSize ); g.setFont(new Font("宋体", Font.BOLD, 20)); g.drawString("下一个方块:",Config.BlockSize*(Config.COL) , Config.BlockSize*(Config.ROW-10)-20); g.setFont(new Font("宋体", Font.BOLD, 30)); g.drawString("score:"+block.score,450 , 300); g.drawString("speed:"+block.speed,450 , 350); //g.drawString(""+System.currentTimeMillis(), 465, 300); g.setColor(color); tetrisblok.drawNextBlock(g); } private class KeyMonitor extends KeyAdapter { public void keyPressed(KeyEvent e) { tetrisblok.keyPressed(e); } } class PaintThread implements Runnable{ @Override public void run() { while(true){ repaint(); try { Thread.sleep(20); } catch (InterruptedException e) { e.printStackTrace(); } } } } //双缓冲解决屏幕一闪一闪 public void update(Graphics g) { if(offScreenImage == null) { offScreenImage = this.createImage((Config.COL+7) * Config.BlockSize, Config.ROW * Config.BlockSize); } Graphics gOff = offScreenImage.getGraphics(); paint(gOff); g.drawImage(offScreenImage, 0, 0, null); } public static void main(String[] args) { Tetris t=new Tetris(); t.luanchFrame(); } }

ClydeSon LV5
2023年12月27日
1474371745 LV1
2023年12月23日
微信网友_6699076084797440 LV7
2023年10月30日
lsglsg9 LV23
2022年9月27日
uuuuuu1 LV1
2022年6月3日
姜广坤 LV14
2022年5月21日
二十 LV1
2021年12月8日
15661649928 LV1
2020年12月12日
jrh947869206 LV4
2020年12月7日
Zcjiayouya LV1
2020年9月6日

微信网友_7556339099734016 LV3
6月23日
13133117021 LV5
2024年12月24日
saikiTEST
2024年12月12日
暂无贡献等级
yimaoermao LV1
2024年9月21日
luoyanglin LV2
2024年9月14日
azzzz1 LV2
2024年6月26日
bill1234 LV1
2024年6月23日
RicardoLou
2024年5月7日
暂无贡献等级
ClydeSon LV5
2023年12月27日
1474371745 LV1
2023年12月23日