使用java实现圆形运动
1 package com.neuedu.test;
2
3 import java.awt.Graphics;
4 import java.awt.Image;
5
6 import com.neuedu.constant.Constant;
7 import com.neuedu.util.GameUtill;
8 import com.neuedu.util.MyFrame;
9
10 public class Round extends MyFrame {
11
1 package com.neuedu.util;
2
3 import java.awt.Color;
4 import java.awt.Component;
5 import java.awt.Frame;
6 import java.awt.Graphics;
7 import java.awt.Image;
8 import java.awt.event.WindowAdapter;
9 import java.awt.event.WindowEvent;
10
11 import com.neuedu.constant.Constant;
12
13 public abstract class MyFrame extends Frame {
14 public void loadFrame () {
15
16 setSize(Constant.GAME_WIDTH,Constant.GAME_HEIGHT);
17 setLocationRelativeTo(null);
18 setTitle("窗口");
19 setResizable(false);
20 setVisible(true);
21 addWindowListener(new WindowAdapter() {
22
23 @Override
24 public void windowClosing(WindowEvent e) {
25 // TODO Auto-generated method stub
26 System.exit(0);
27 }
28
29 });
30 new MyThread().start();
31 }
32
33 class MyThread extends Thread {
34
35 @Override
36 public void run() {
37 while (true) {
38 repaint();
39 try {
40 Thread.sleep(60);
41 } catch (InterruptedException e) {
42 // TODO Auto-generated catch block
43 e.printStackTrace();
44 }
45 }
46 }
47
48 }
49 Image offScreenImage = null ;//创建双缓冲,因为repaint太快
50 @Override
51 public void update(Graphics g) {
52 if(offScreenImage == null) {
53 offScreenImage = this.createImage(Constant.GAME_WIDTH,Constant.GAME_HEIGHT);
54 }
55 Graphics gOffScreen = offScreenImage.getGraphics();
56 Color c = gOffScreen.getColor();
57 gOffScreen.setColor(Color.WHITE);
58 gOffScreen.fillRect(0,0,Constant.GAME_WIDTH,Constant.GAME_HEIGHT);
59 gOffScreen.setColor(c);
60 paint(gOffScreen);
61 g.drawImage(offScreenImage, 0, 0, null);
62 }
63 }
12 /**
13 * @param args
14 */
15 Image snow = GameUtill.getImage("com/neuedu/img/star.png");
16 int y = 250;
17 int x = 700;19 double degree = Math.PI/6;
20 double speed= 0.1;
21 @Override
22 public void paint(Graphics g) {
23
24 // TODO Auto-generated method stub
25 g.drawImage(snow,x,y,50,50,null);
26 x += 25* Math.cos(degree);
27 y += 25* Math.sin(degree);
28 degree += speed;
29
30 }
31 public static void main(String[] args) {
32 // TODO Auto-generated method stub
33 new Round().loadFrame();
34 }
35
36 }
1 package com.neuedu.util;
2
3 import java.awt.Image;
4 import java.awt.image.BufferedImage;
5 import java.io.IOException;
6 import java.net.URL;
7
8 import javax.imageio.ImageIO;
9
10 public class GameUtill {
11 public static Image getImage (String imgPath) {
12 URL u = GameUtill.class.getClassLoader().getResource(imgPath);
13 BufferedImage img = null;
14 try {
15 img = ImageIO.read(u);
16 } catch (IOException e) {
17 // TODO Auto-generated catch block
18 e.printStackTrace();
19 }
20 return img;
21
22 }
23 }
使用java实现圆形运动的更多相关文章
- Java 运动模糊
Java 运动模糊代码 想用Java 写个运动模糊的效果,无奈本人水平有限,国内也没找到资源,于是Google到了一个文档,特地分享出来! 本代码源自 http://www.jhlabs.com/ip ...
- Google Tango Java SDK开发:Motion Tracking 运动追踪
Java API Motion Tracking Tutorial运动追踪教程 This page describes how the Java API handles motion tracking ...
- java 绘图
java 绘图 圆形.线条.矩形.填充 插入图片 文字 //绘图 import java.awt.*; import javax.swing.*; public class Index extends ...
- Java自学之路---DotCom
引言 我从接触编程以来,一直是一个C/C++程序猿,因为我喜欢编程时,那种接地气的感觉,认为只有自己管理内存的使用,心理才踏实.但随着工作中不断增加的见闻,不断的从博客和源码中获得新的见解,我发现这个 ...
- Java基础教程免费分享
这是我自己早前听课时整理的Java全套知识,适用于初学者,也可以适用于中级进阶的人,你们可以下载,我认为是比较系统全面的,可以抵得上市场上90%的学习资料.讨厌那些随便乱写的资料还有拿出来卖钱的人!在 ...
- canvas三角函数应用
这个是圆圈旋转的简单案例 var canvas=document.getElementById("canvas"); var cxt=canvas.getContext(" ...
- 【轨迹动画css】不规则轨迹动画css教程,弹球,客服广告悬浮层都可以用
小demo如下,可更具自己需求修改: css @keyframes animX{ 0% {left: 0px;} 100% {left: 500px;} } @keyframes animY{ 0% ...
- css3椭圆运动
通过使用css3实现让元素椭圆运动.而不是圆形运动. 效果1:http://sandbox.runjs.cn/show/ignefell 效果2:http://runjs.cn/code/w2wxjy ...
- 走进JavaWeb技术世界10:从JavaBean讲到Spring
Java 帝国之Java bean (上) 转自: 刘欣 码农翻身 2016-05-27 前言: 最近看到到spring 的bean 配置, 突然想到可能很多人不一定知道这个叫bean的东西的来龙去脉 ...
随机推荐
- 【03】SpringBoot2核心技术-核心功能—数据访问_单元测试_指标监控
3.数据访问(SQL) 3.1 数据库连接池的自动配置-HikariDataSource 1.导入JDBC场景 <dependency> <groupId>org.spring ...
- influxdb安装与基本配置
一.Influxdb下载 本文中使用的环境是centos7.3 wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.6.x86_ ...
- CSS基础 实战案例 模拟小米官方导航栏
效果图 html结构 <ul> <li><a href="#">Xiaomi手机</a></li> <li> ...
- 初识python: 类练习 - 老板&员工
需求: 1.员工具有姓名.年龄.能力值(能力值为100-年龄),可以工作,每工作一次,该员工的能力值-5,创建__str__方法,打印该员工的信息: 2.老板具有投资金额,工作量,员工列表.可以雇佣员 ...
- oracle 之 EXP、IMP 使用简介
注:DOS命令行中执行exp.imp 导出导入ORACLE数据,ORACLE操作者具有相应的权限! 1.1.导出整库或当前用户:关键字:full语法:exp 用户/密码@数据库实例名 file=导出文 ...
- 详谈 Java工厂 --- 抽象工厂模式
1.前言 感觉工厂模式都好鸡肋,还特别绕来绕去,当然,好处还是有的,将一些类似的业务都集成到工厂了, 不需要理会底层是怎么运行的,我只需要向调用工厂即可获取我要的结果,也不需要考虑工厂返回的东西类型, ...
- xshell 6 的使用
1.前言 xshell是用来远程控制云服务器的linux系统的软件,装载window系统里面,可以向发送linux指令, 需要的关键信息:该系统设备的公网ip, 用户名 ,密码 2.软件下载 官网地址 ...
- 通过了解Servlet和Http之间的关系,了解web中http通信使用
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6512336761551585796/ 1.<Servlet简单实现开发部署过程> 2.<Serv ...
- 微信小程序动画实现(API,css)
微信小程序动画API实现 index.js clicktap:function(){ var Animation=wx.createAnimation({ duration: 2000, }) Ani ...
- JAVA之内存结构
概述 JAVA是我们现在最常用的开发语言,而他的垃圾回收机制(Garbage Collection)的重要作用不言而喻,以下简称GC,所以了解GC至关重要,现本人对于GC机制以前的理解和现在的理解记录 ...