韩顺平-循序渐进学java-从入门到精通-课件-笔记-第三十三讲到第三十四_第1页
韩顺平-循序渐进学java-从入门到精通-课件-笔记-第三十三讲到第三十四_第2页
韩顺平-循序渐进学java-从入门到精通-课件-笔记-第三十三讲到第三十四_第3页
韩顺平-循序渐进学java-从入门到精通-课件-笔记-第三十三讲到第三十四_第4页
韩顺平-循序渐进学java-从入门到精通-课件-笔记-第三十三讲到第三十四_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

内容:坦克大战演示:java绘图坐标体系java绘图技术java事件处理机制我的坦克大战游戏(1.0版本)目标:理解java绘图坐标体系掌握java绘图基本技术充分理解java事件处理机制完成java坦克大战游戏(1.0版本)演示坦克大战:涉及的技术:1java面向对象程序设计2界面编程3绘图技术4多线程5文件流操作6数据库技术java绘图坐标体系介绍:坐标原点位于左上角,以像素为单元,x轴表示当前位置为水平方向y坐标表示当前位置为垂直方向.像素是个密度单位.介绍快速入门案例 画小圆 demo9_1JFrame 不提供绘画功能,所以要在面板里画,解释:Component类提供了两个绘图相关的两个重要的类,1paint(Graphics g)绘制组建的外观2repaint()刷新组建外观当组建第一次在屏幕上显示时,程序会自动调用paint()方法,来绘制组件.在下列情况下paint()下也会被调用a 窗口最小化在最大化b 窗口大小发生变化c repaint函数被调用介绍Graphics类参考jdk画直线画矩形边框画椭圆边框填充矩形填充椭圆画图片花字符串设置画笔字体设置画笔颜色第三十四讲:演示案例: demo9_1/* * java绘图原理 */package com.test1;import java.awt.*;import javax.swing.*;public class demo9_1 extends JFrameMyPanel mp=null;public static void main(String args) demo9_1 demo=new demo9_1();public demo9_1()mp=new MyPanel();this.add(mp);this.setSize(400,300);this.setLocation(200,200);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);/定义一个MYpanel我自己的面板,用于绘图和实现绘图区域class MyPanel extends JPanel/覆盖JPanel的paint方法,/Graphics 是绘图的重要类,可以把它理解成一支画笔public void paint (Graphics g)/调用父类函数,完成初始化super.paint(g); /固定格式不能少System.out.println(窗口被调用);/先画一个圆g.setColor(Color.blue);/画圆g.drawOval(10, 10, 30, 30);/划线g.drawLine(10, 10, 20, 20);/画矩形g.drawRect(30, 30, 10, 10);g.setColor(Color.red);/画实心矩形g.fillRect(50, 50, 20, 20);/在面板上画出图片Image img=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource(/1.jpg);/显示g.drawImage(img, 50, 50, 256, 192,this);/如何画出字g.setColor(Color.red);g.setFont(new Font(华文彩云,Font.BOLD,50);g.drawString(祖国万岁, 20, 70);实战-坦克大战1、利用java绘图画出一个坦克./* * 功能:坦克游戏的1.0 * 1.画出坦克 */package com.test1;import java.awt.*;import javax.swing.*;public class MyTankGame1 extends JFrame MyPanel mp=null;public static void main(String args) MyTankGame1 mytankgame1=new MyTankGame1();/构造函数public MyTankGame1()mp= new MyPanel();this.add(mp);this.setSize(500,500);this.setLocation(100,100);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);/我的面板class MyPanel extends JPanel/定义一个我的坦克Hero hero=null;/构造函数public MyPanel()hero =new Hero(10,10);/重新paintpublic void paint(Graphics g)super.paint(g);/设置背景颜色,500为窗体的大小g.fillRect(0, 0, 500, 500); this.drawTank(hero.getX(), hero.getY(), g, 0, 1);/画出坦克的函数public void drawTank (int x,int y ,Graphics g,int direct ,int type)/判断类型switch (type)/我的坦克case 0 :g.setColor(Color.red);break;/敌人坦克case 1:g.setColor(Color.green);break;/判断方向switch (direct)/向上case 0 :/画出我的坦克(到时再封装成一个函数)/1.画出左边的巨型g.fill3DRect(x, y, 5, 30,false);/2.画出右边的矩形g.fill3DRect(x+15, y, 5, 30,false);/3.画中间矩形g.fill3DRect(x+5, y+5, 10, 20,false);/4.画出圆形g.fillOval(x+4, y+7, 10, 15);/5.画出炮筒g.drawLine(x+10, y-4, x+10, y+20);break;/坦克类class Tank/x表示坦克的横坐标private int x=0;public int getX() return x;public void setX(int x) this.x = x;/坦克的纵坐标private int y=0;public int getY() re

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论