`

球体运动效果

阅读更多
看个效果图:





自定义的View:
package eas.org;

import android.content.Context;
import android.graphics.Canvas;
import android.view.View;

public class DrawView extends View {
	private ColorBall colorball1, colorball2, colorball3, colorball4,
			colorball5;

	public DrawView(Context context) {
		super(context);
		setFocusable(true);
		// not yet necessary, but you never know what the future brings

		// declare each ball with the ColorBall class
		colorball1 = new ColorBall(context, R.drawable.bol_groen);
		colorball2 = new ColorBall(context, R.drawable.bol_rood);
		colorball3 = new ColorBall(context, R.drawable.bol_blauw);
		colorball4 = new ColorBall(context, R.drawable.bol_geel);
		colorball5 = new ColorBall(context, R.drawable.bol_paars);
	}

	@Override
	protected void onDraw(Canvas canvas) {
		canvas.drawColor(0xFFCCCCCC);
		// if you want another background color

		// move the balls at every canvas draw
		colorball1.moveBall(5, 3);
		colorball2.moveBall(3, 4);
		colorball3.moveBall(2, 2);
		colorball4.moveBall(4, 5);
		colorball5.moveBall(5, 1);

		// draw the balls on the canvas
		canvas.drawBitmap(colorball1.getBitmap(), colorball1.getX(),
				colorball1.getY(), null);
		canvas.drawBitmap(colorball2.getBitmap(), colorball2.getX(),
				colorball2.getY(), null);
		canvas.drawBitmap(colorball3.getBitmap(), colorball3.getX(),
				colorball3.getY(), null);
		canvas.drawBitmap(colorball4.getBitmap(), colorball4.getX(),
				colorball4.getY(), null);
		canvas.drawBitmap(colorball5.getBitmap(), colorball5.getX(),
				colorball5.getY(), null);

		// refresh the canvas
		invalidate();
	}

}



球体运动控制:
package eas.org;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

public class ColorBall {

	private Bitmap img; // the image of the ball
	private int coordX = 0; // the x coordinate at the canvas
	private int coordY = 0; // the y coordinate at the canvas
	private int id;

	// gives every ball his own id, for now not necessary
	private static int count = 1;
	private boolean goRight = true;
	private boolean goDown = true;

	public ColorBall(Context context, int drawable) {

		BitmapFactory.Options opts = new BitmapFactory.Options();
		opts.inJustDecodeBounds = true;

		// 得到解析的位图
		img = BitmapFactory.decodeResource(context.getResources(), drawable);
		id = count;
		count++;

	}

	public static int getCount() {
		return count;
	}

	void setX(int newValue) {
		coordX = newValue;
	}

	public int getX() {
		return coordX;
	}

	void setY(int newValue) {
		coordY = newValue;
	}

	public int getY() {
		return coordY;
	}

	public int getID() {
		return id;
	}

	public Bitmap getBitmap() {
		return img;
	}

	public void moveBall(int goX, int goY) {
		// check the borders, and set the direction if a border has reached
		if (coordX > 270) {
			goRight = false;
		}
		if (coordX < 0) {
			goRight = true;
		}
		if (coordY > 400) {
			goDown = false;
		}
		if (coordY < 0) {
			goDown = true;
		}
		// move the x and y
		if (goRight) {
			coordX += goX;
		} else {
			coordX -= goX;
		}
		if (goDown) {
			coordY += goY;
		} else {
			coordY -= goY;
		}

	}

}
  • 大小: 21.9 KB
分享到:
评论

相关推荐

    delphi 运动球体

    - 对于3D渲染,Delphi的FireMonkey框架提供了更强大的功能,如TRectangle3D和TSphere等3D对象,可以创建更逼真的球体运动效果。 3. **物理模拟**: 要实现球体的运动,你需要应用物理定律,比如牛顿的运动定律。...

    java模仿windows屏保中球体来回自由相撞的效果

    在Java开发中,模拟Windows屏保中的球体自由相撞效果是一个有趣的图形编程挑战,它涉及到计算机图形学...通过不断调整参数和改进算法,可以创造出各种有趣且逼真的球体运动效果,实现一个充满活力的Java版Windows屏保。

    UE4学习笔记----使用C++之控制球体运动并使用移动粒子效果(源代码)

    本笔记将深入探讨如何使用C++编程语言来控制球体的运动,并结合移动粒子效果来提升游戏视觉体验。以下是你需要了解的关键知识点: 1. **C++在UE4中的应用**: UE4提供了C++的完整支持,允许开发者直接编写代码来...

    球体螺旋运动

    同时,可能还需要考虑到帧率对运动效果的影响,以确保在不同性能的设备上都能有良好的表现。 此外,为了可视化球体的运动,我们还需要绘制球体。这涉及到顶点数组、索引数组和渲染模式的选择。在3D环境中,我们还...

    Flash三维球体运动动画.rar

    本压缩包“Flash三维球体运动动画.rar”似乎包含了一个使用Flash技术实现的三维球体动态效果的项目。下面我们将深入探讨与这个主题相关的知识点。 1. **Flash基础知识**:Flash是Adobe公司开发的一款多媒体创作工具...

    HTML5球体斑点运动动画.zip

    在这个案例中,JS负责控制球体上斑点的运动轨迹、速度和形状变化,以实现3D动画效果。 为了实现这样的动画,开发者可能使用了WebGL,这是一个HTML5的API,允许在浏览器中进行硬件加速的3D图形渲染。WebGL使得无需...

    opengl关于球体运动

    ### OpenGL中的球体运动知识点详解 #### 一、实验背景与目标 本实验旨在通过具体的编程实践,深入了解并掌握OpenGL中的三维变换操作及其应用。实验的主要目的是让学习者熟悉OpenGL中涉及模型视图变换、投影变换...

    计算机flash考试试题归纳.pdf

    3. 球体运动:模仿样片,制作450×100像素的球体运动效果,保存".fla"和".swf"文件到"题目3"文件夹。 4. 相册制作:参照样片,使用素材制作550×400像素的相册,保存".fla"和".swf"文件到"题目4"文件夹。 通过这份...

    OpenGL之仿“天体”运动渲染球体之间的旋转效果.zip

    矩阵堆栈允许开发者在不破坏当前模型视图的情况下应用一系列变换,这对于实现复杂的运动效果,如行星的公转和自转至关重要。 4. **镜面效果**:镜面效果通常涉及到光照模型和反射计算,可以模拟物体表面的光泽或...

    后期合成软件ae的fe插件

    1. **BALLACTION**:这是一个可能用于创建动态球体运动效果的插件,可能包括弹跳、旋转、碰撞等模拟真实物理运动的功能。设计师可以利用它来制作体育相关的动画或者游戏特效。 2. **BUBBLES**:这个插件专注于泡沫...

    pro插件FE(常用的)

    BallAction通常是一个动画效果插件,可能用于创建动态的、吸引人的交互元素,比如球体运动效果。在网页设计中,这种视觉特效可以增强用户体验,使网站或应用更具吸引力。开发者可能通过配置插件参数来定制球体的...

    CSS3 实现的卫星环绕的彩色球体动画效果源码.zip

    在这里,`rotate()`和`translate()`函数可能被用来调整卫星的旋转和位置,使其看起来像在环绕球体运动。 4. **过渡(Transitions)**:`transition`属性可以平滑地改变元素的样式,比如改变颜色、大小等。在这个...

    弹跳的球体 mfc

    在这个场景中,球体会在曲线上弹跳,同时由于曲线下凹和上凸的部分,球体会有翻滚的效果,增加了视觉的真实感。 实现这样的效果,我们需要了解以下几个关键知识点: 1. **计算机图形学基础**:包括坐标系统、几何...

    CSS3D球体.html

    css3实现球体运动,效果炫酷,需要jquery和jquery.mousewheel插件,请自行下载。

    HTML5 Canvas实现的泡沫球体动画效果源码.zip

    在这个案例中,泡沫球体的动画效果可能涉及到`arc()`用于绘制圆形,`beginPath()`和`closePath()`用于路径管理,以及`fill()`或`stroke()`来填充或描边形状。 要实现动画,关键在于帧更新和重绘。开发者通常会设置...

    移动的球体MFC制作

    在“移动的球体”项目中,GDI或GDI+可能被用来绘制球体和处理其运动轨迹。 4. 设备上下文(Device Context, DC):在Windows编程中,DC是一个结构,包含了关于如何在特定设备上进行绘图的信息。开发者可以通过获取...

    纯css3 3D旋转科技球体动画特效

    - 设置过渡和动画属性,如`transition`和`animation`,使球体在特定时间内按照预设路径运动。 - 可能需要添加鼠标交互,如悬停效果,使球体在用户交互时产生不同的动画响应。 通过以上技术,开发者可以创建出一个...

    AnimationDemo.zip

    "AnimationDemo.zip"提供了一个人物动画、物体动画的实战示例,涵盖了开门、关门、上下楼梯、球体变大缩小以及球体运动等常见动画场景。本文将深入探讨这些知识点,帮助开发者更好地理解和应用Unity 3D的动画系统。 ...

    纯CSS3制作3D旋转球体

    在本文中,我们将深入探讨如何使用纯CSS3技术来创建一个具有3D旋转效果的球体。CSS3作为现代Web设计的重要工具,提供了丰富的样式和动画功能,其中3D转换是其亮点之一。通过理解并应用这些特性,我们可以构建出极具...

Global site tag (gtag.js) - Google Analytics