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实现圆形运动的更多相关文章

  1. Java 运动模糊

    Java 运动模糊代码 想用Java 写个运动模糊的效果,无奈本人水平有限,国内也没找到资源,于是Google到了一个文档,特地分享出来! 本代码源自 http://www.jhlabs.com/ip ...

  2. Google Tango Java SDK开发:Motion Tracking 运动追踪

    Java API Motion Tracking Tutorial运动追踪教程 This page describes how the Java API handles motion tracking ...

  3. java 绘图

    java 绘图 圆形.线条.矩形.填充 插入图片 文字 //绘图 import java.awt.*; import javax.swing.*; public class Index extends ...

  4. Java自学之路---DotCom

    引言 我从接触编程以来,一直是一个C/C++程序猿,因为我喜欢编程时,那种接地气的感觉,认为只有自己管理内存的使用,心理才踏实.但随着工作中不断增加的见闻,不断的从博客和源码中获得新的见解,我发现这个 ...

  5. Java基础教程免费分享

    这是我自己早前听课时整理的Java全套知识,适用于初学者,也可以适用于中级进阶的人,你们可以下载,我认为是比较系统全面的,可以抵得上市场上90%的学习资料.讨厌那些随便乱写的资料还有拿出来卖钱的人!在 ...

  6. canvas三角函数应用

    这个是圆圈旋转的简单案例 var canvas=document.getElementById("canvas"); var cxt=canvas.getContext(" ...

  7. 【轨迹动画css】不规则轨迹动画css教程,弹球,客服广告悬浮层都可以用

    小demo如下,可更具自己需求修改: css @keyframes animX{ 0% {left: 0px;} 100% {left: 500px;} } @keyframes animY{ 0% ...

  8. css3椭圆运动

    通过使用css3实现让元素椭圆运动.而不是圆形运动. 效果1:http://sandbox.runjs.cn/show/ignefell 效果2:http://runjs.cn/code/w2wxjy ...

  9. 走进JavaWeb技术世界10:从JavaBean讲到Spring

    Java 帝国之Java bean (上) 转自: 刘欣 码农翻身 2016-05-27 前言: 最近看到到spring 的bean 配置, 突然想到可能很多人不一定知道这个叫bean的东西的来龙去脉 ...

随机推荐

  1. 【入门到精通】❤️「Java工程师全栈知识路线」

    持续更新中- Vue前端开发 章节 内容 实践练习 Vue.js高效前端开发 • (实践练习) 第1章 Vue.js高效前端开发 • [ 一.初识Vue.js ] 第2章 Vue.js高效前端开发 • ...

  2. 在pycharm中创建py文件——创建你的第一个项目

    开启编程第一步   创建一个项目 创建项目了xdm,敲黑板了哈 首先打开你的pycharm,点击New Project新建项目 就会进入到配置你这个项目所要用到的环境,这里我们用python列举 在L ...

  3. STM32新建模板之库文件

    一.新建项目文件夹 在桌面创建项目文件夹,用于存放工程,命名为"stm32f10x_project" 在项目文件夹中创建3个文件夹,分别命名为:CMSIS.OUTPUT.STM32 ...

  4. CSS基础 清除浮动

    1.单伪元素清除法:清除浮动 .clearfix::after{             content: '.';             display: block;             c ...

  5. String 既然能做性能调优,我直呼内行

    码哥,String 还能优化啥?你是不是框我? 莫慌,今天给大家见识一下不一样的 String,从根上拿捏直达 G 点. 并且码哥分享一个例子:通过性能调优我们能实现百兆内存轻松存储几十 G 数据. ...

  6. 在安装pdfplumber时报错 Microsoft Visual C++ 14.0 is required.

    在安装pdfplumber时报下列错误: 解决方法:     更新pip ,因为pip 版本太旧 来自为知笔记(Wiz)

  7. 从Base64编码转换为图片文件

    package luckyclient.utils;import java.io.FileInputStream;import java.io.FileOutputStream;import java ...

  8. [ vue ] 解耦vuex(按照组件来组织vuex的结构)

    问题描述 随着应用复杂度的增加,vuex用一个 store/index.js 文件来描述已经很难维护了,我们想把这些状态分割到单独文件里面. 参考1:https://vuex.vuejs.org/zh ...

  9. [ unittest ] 文档粗读

    参考: https://blog.csdn.net/ljl6158999/article/details/80994979 1.概念提出 unittest最初灵感来自于Junit,它有着和其他单元测试 ...

  10. window10 查看端口列表 - 查看占用的进程-销毁该进程

    cmd进入指令框后 查看端口列表 netstat -ano 查看占用的进程 [6666是端口号对应的进程数] tasklist|findstr "6666" 销毁该进程 [6666 ...