反弹运动
来源:互联网 发布:qq数据恢复软件 编辑:程序博客网 时间:2024/06/11 18:40
import java.awt.*;
import java.applet.*;
public class UseDoubleBuffering extends Applet
implements Runnable {
int X, Y, moveX, moveY, width, height;
Thread newThread;
Image OffScreen;
Graphics drawOffScreen;
public void init() {
X = 0; //X坐标
Y = 0; //Y坐标
moveX = 2; //X轴位移
moveY = 3; //Y轴位移
width = getSize().width; //Applet的宽度
height = getSize().height;//Applet的高度
OffScreen = createImage(width, height);//建立次画面
drawOffScreen = OffScreen.getGraphics();//取得次画面的绘图类
}
public void start() {
newThread = new Thread(this);//建立新线程
newThread.start();
}
public void stop() {
newThread = null;//将线程设为空
}
public void paint(Graphics g) {
if (width != getSize().width || height != getSize().height)
{
//如果Applet大小变化就重新生成次画面
width = getSize().width;
height = getSize().height;
OffScreen = createImage(width, height);
drawOffScreen = OffScreen.getGraphics();
}
//清除次画面(即在次画面上绘制一个与与Applet相同大小的矩形)
drawOffScreen.setColor(Color.black);
drawOffScreen.fillRect(0, 0, width, height);
//在次画面上绘制实心园(代表小球)
drawOffScreen.setColor(Color.white);
drawOffScreen.fillOval(X, Y, 30, 30);
//将次画面贴到主画面上
g.drawImage(OffScreen, 0, 0, this);
// g.setColor(Color.white);
// g.fillOval(X, Y, 30, 30);
}
public void update(Graphics g)
{
//update函数只调用paint()函数而不是清除后再调用
paint(g);
}
public void run() {
while (newThread != null) {
repaint();//重新绘制图像
try {
Thread.sleep(50);//线程暂停50毫秒
}
catch (InterruptedException E) {}
X = X + moveX;//重新计算X、Y坐标
Y = Y + moveY;
//碰到边界时改变递增值造成反弹效果
if (X >= (width - 30)) {
X = width - 30;
moveX = -moveX;
}
if (X <= 0) {
X = 0;
moveX = -moveX;
}
if (Y >= (height - 30)) {
Y = height - 30;
moveY = -moveY;
}
if (Y <= 0) {
Y = 0;
moveY = -moveY;
}
}
}
}
import java.applet.*;
public class UseDoubleBuffering extends Applet
implements Runnable {
int X, Y, moveX, moveY, width, height;
Thread newThread;
Image OffScreen;
Graphics drawOffScreen;
public void init() {
X = 0; //X坐标
Y = 0; //Y坐标
moveX = 2; //X轴位移
moveY = 3; //Y轴位移
width = getSize().width; //Applet的宽度
height = getSize().height;//Applet的高度
OffScreen = createImage(width, height);//建立次画面
drawOffScreen = OffScreen.getGraphics();//取得次画面的绘图类
}
public void start() {
newThread = new Thread(this);//建立新线程
newThread.start();
}
public void stop() {
newThread = null;//将线程设为空
}
public void paint(Graphics g) {
if (width != getSize().width || height != getSize().height)
{
//如果Applet大小变化就重新生成次画面
width = getSize().width;
height = getSize().height;
OffScreen = createImage(width, height);
drawOffScreen = OffScreen.getGraphics();
}
//清除次画面(即在次画面上绘制一个与与Applet相同大小的矩形)
drawOffScreen.setColor(Color.black);
drawOffScreen.fillRect(0, 0, width, height);
//在次画面上绘制实心园(代表小球)
drawOffScreen.setColor(Color.white);
drawOffScreen.fillOval(X, Y, 30, 30);
//将次画面贴到主画面上
g.drawImage(OffScreen, 0, 0, this);
// g.setColor(Color.white);
// g.fillOval(X, Y, 30, 30);
}
public void update(Graphics g)
{
//update函数只调用paint()函数而不是清除后再调用
paint(g);
}
public void run() {
while (newThread != null) {
repaint();//重新绘制图像
try {
Thread.sleep(50);//线程暂停50毫秒
}
catch (InterruptedException E) {}
X = X + moveX;//重新计算X、Y坐标
Y = Y + moveY;
//碰到边界时改变递增值造成反弹效果
if (X >= (width - 30)) {
X = width - 30;
moveX = -moveX;
}
if (X <= 0) {
X = 0;
moveX = -moveX;
}
if (Y >= (height - 30)) {
Y = height - 30;
moveY = -moveY;
}
if (Y <= 0) {
Y = 0;
moveY = -moveY;
}
}
}
}
- 反弹运动
- js实现简单的小球与边框碰撞反弹改变运动方向及颜色,并且继续运动的特效
- windows编程 win32项目 绘制小球自由落体反弹、键盘控制小球运动
- 运动
- 运动
- 股市“反弹”
- 反弹shell
- ListView反弹
- 反弹问题
- 反弹shell
- 小球反弹
- div反弹
- 碰壁反弹
- msfvenom反弹
- 反弹高度
- 反弹式后门代码
- 零缺陷反弹
- 抢反弹三要点
- 信产部:我国增值业务收入占电信收入的10%
- lotus 数据库应用程序开发的合理顺序
- ASP.NET中從服務器下載文件到硬盤功能實現
- 怎样使代理运行的延迟最小?
- 诺基亚手机开发:对翻盖动作和相机方向变化作出响应
- 反弹运动
- 转自csdn上的一篇文章:domino从windows2000迁移到solaris上
- 开网站手续
- 在Fedora core 4 上美化字体的最高境界
- Linux下jdk1.5的安装及中文显示问题解决方案
- 程序员的.NET时代
- FC4 安装和配置 Java J2SE Development Kit(JDK)
- 第十一章: Collections of Objects (2.2 容器类续)
- 怀想