zoukankan      html  css  js  c++  java
  • 1.贪吃蛇之界面绘制

    前景:
      :如果时间片足够小,就是动画,比如一秒30帧(就是一秒钟会放进30张图片,对人的眼睛来说,他其实已经开始动起来了)。小时候玩过翻书吧,你那一本书手动去拨,也能看见一个动画的效果,那个帧率是很低了。经常看到的游戏里就是30帧,60帧的也有,其实在人肉眼看来60帧和30帧区别不是很大。如果是只苍蝇的话,那就可以分辨出来,因为它比人慢百倍,你打不到它的有原因就是这个。连起来是动画,拆开来是静态的图片!比如做动漫,一秒钟24张画,就是24帧。
      键盘监听,定时器Timer类
    一:导入静态资源

    二:写一个游戏主启动类 JFrame
     1 package com.gui.snake;
     2 
     3 import javax.swing.*;
     4 
     5 //游戏的主启动类
     6 public class StartGame {
     7     public static void main(String[] args) {
     8         JFrame frame = new JFrame();
     9 
    10         frame.setBounds(10, 10, 900, 720);
    11         frame.setResizable(false);//窗口大小不可变
    12         frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    13 
    14         //正常的游戏都应该放在面板上!
    15         frame.add(new GamePanel());
    16 
    17         frame.setVisible(true);
    18     }
    19 }
    三:游戏的面板 paintComponent、fillRect
     1 package com.gui.snake;
     2 
     3 import javax.swing.*;
     4 import java.awt.*;
     5 
     6 //游戏的面板
     7 public class GamePanel extends JPanel {
     8 
     9     //绘制面板,我们游戏中的所有东西,都是用这个画笔来画。 Ctrl+O,画组件
    10     @Override
    11     protected void paintComponent(Graphics g) {
    12         super.paintComponent(g);//清屏的作用,不用会闪烁
    13         //绘制静态的面板
    14         this.setBackground(Color.WHITE);
    15         Data.header.paintIcon(this, g, 25, 11);//头部广告栏画上去
    16         g.fillRect(25, 75, 850, 600);//默认游戏界面
    17 
    18 
    19     }
    20 }
    四:数据中心 Data、ImageIcon
     1 package com.gui.snake;
     2 
     3 import javax.swing.*;
     4 import java.net.URL;
     5 
     6 //数据中心
     7 public class Data {
     8     //相对路径 tx.jpg
     9     //绝对路径  / 相当于当前的项目
    10     public static URL headerURL = Data.class.getResource("statics/header.png");
    11     public static ImageIcon header = new ImageIcon(headerURL);
    12 
    13     public static URL upURL = Data.class.getResource("statics/up.png");
    14     public static URL downURL = Data.class.getResource("statics/down.png");
    15     public static URL leftURL = Data.class.getResource("statics/left.png");
    16     public static URL rightURL = Data.class.getResource("statics/right.png");
    17     public static ImageIcon up = new ImageIcon(upURL);
    18     public static ImageIcon down = new ImageIcon(downURL);
    19     public static ImageIcon left = new ImageIcon(leftURL);
    20     public static ImageIcon right = new ImageIcon(rightURL);
    21 
    22     public static URL bodyURL = Data.class.getResource("statics/body.png");
    23     public static ImageIcon body = new ImageIcon(bodyURL);
    24 
    25     public static URL foodURL = Data.class.getResource("statics/food.png");
    26     public static ImageIcon food = new ImageIcon(foodURL);
    27 }
    效果:
     
  • 相关阅读:
    谦谦君子 温润如玉
    [Linux: vim]vim自动生成html代码
    /boot/grub/grub.conf 内容诠释
    mini_httpd在RedHat 5下安装
    html 简单学习
    v4l
    手机处理器哪个好 智能手机处理器进化知识
    小败局】一位草根北漂创业者自述:赚钱的快餐店之死
    读书
    手游研发CJ抱大腿指南
  • 原文地址:https://www.cnblogs.com/duanfu/p/12599787.html
Copyright © 2011-2022 走看看