坦克大战1.0——前置知识
Java绘图坐标体系
-
像素
-
绘图原理
- 小练习——画⚪
package game; import javax.swing.*; import java.awt.*; /** * @author 紫英 * @version 1.0 * @discription 画⚪ */ @SuppressWarnings("all") public class DrawCircle extends JFrame {//窗口 public DrawCircle(){ Mypanel mypanel = new Mypanel();//new一个画板对象 this.add(mypanel);//画板添加到窗口 this.setSize(1500,1500);//设置窗口大小 this.setVisible(true);//可视化 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时释放程序 } public static void main(String[] args) { new DrawCircle();//程序运行时系统会自动调用paint方法 } } class Mypanel extends JPanel{//画板 @Override public void paint(Graphics g) { //System.out.println("paint"); //画笔 super.paint(g); //在(500,500的位置画一个矩形,矩形里画⚪) g.drawOval(100,100,500,500); } }
-
Graphic类
1.直线的坐标是两端点,矩形同理(对角线端点坐标)
2.字符串坐标是字符串的左下角
6.也可以用绝对路径
Image image = Toolkit.getDefaultToolkit().getImage("E:\\picture\\白凤.png"); g.drawImage(image,500,500,471,346,this);
- 画个小坦克
-
事件处理机制
案例——小球移动
package event; import javax.swing.*; import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; /** * @author 紫英 * @version 1.0 * @discription 小球移动案例 */ public class BallMove extends JFrame { Mypanel mp=null; BallMove(){ mp=new Mypanel(); this.add(mp);//画板添加到窗口 this.setSize(1000,750);//设置窗口大小 this.setVisible(true);//可视化 this.addKeyListener(mp);//监听器添加到窗口(接口多态) this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时释放程序 } public static void main(String[] args) { new BallMove(); } } class Mypanel extends JPanel implements KeyListener { // 键盘监听 //为了方便移动将位置做成变量 int x = 200; int y = 200; @Override public void paint(Graphics g) { super.paint(g); g.fillOval(x,y,100,100); //画个球 } @Override public void keyTyped(KeyEvent e) { // 有字符输出时触发 } @Override public void keyPressed(KeyEvent e) { // 按下键盘触发 // System.out.println((char) e.getKeyCode()+"被按下"); if (e.getKeyCode()==87){//w y--;//y--才是向上(页面左上角是原点) }else if (e.getKeyCode()==83){//s y++; }else if (e.getKeyCode()==65){//a x--; }else if (e.getKeyCode()==68){//d x++; } this.repaint();//重绘 } @Override public void keyReleased(KeyEvent e) { // 松开键盘触发 } }
按键代码见——键盘按键代码
本文来自博客园,作者:紫英626,转载请注明原文链接:https://www.cnblogs.com/recorderM/p/15837959.html