`

html5的canvas绘图实现滚动的小球

 
阅读更多

<canvas id="canvas" width="800" height="300" style="border:1px solid #eeeeee;">
你的浏览器不支持 &lt;canvas&gt;标签,请使用 Chrome 浏览器 或者 FireFox 浏览器
</canvas>

颜色:<input type="range" min="1" max="100" onchange="colorChange(event,0)"/>

<script type="text/javascript"> 
 var context2D;   // 小球从(0,0)开始移动,横向步长为 2,纵向步长为 3 
var colors = "#357ec2,#ec594b,#fcd208,#4ab348";
var objectNum = 10;

 function draw(){

	context2D.clearRect(0, 0, canvas.width, canvas.height);   // 清除整个 canvas 画面


	//context2D.fillStyle = '#666666'; 
	context2D.beginPath(); 

	for(i=1;i<=objectNum;i++)
	{
		itemInfo = sessionStorage.getItem('ball_'+i);

		items = itemInfo.split('_');
		x = parseInt(items[0]);
		y = parseInt(items[1]);
		dx = parseInt(items[2]);
		dy = parseInt(items[3]);
		color = items[4];

		context2D.fillStyle = color; 
		context2D.arc(x,y,20,0,Math.PI*2,true); 

		// 判断边界值,调整 dx/dy 以改变 x/y 坐标变化方向。
		if (x + dx > canvas.width || x + dx < 0) dx = -dx; 
		if (y + dy > canvas.height || y + dy < 0) dy = -dy; 
		 
		x += dx;
		y += dy;

		sessionStorage.setItem('ball_'+i, x+"_"+y+"_"+dx+"_"+dy+"_"+color);       
		
	}

	context2D.fill();
 }

window.onload = function (){  
	var canvas = document.getElementById('canvas'); 
	context2D = canvas.getContext('2d'); 
	var c = colors.split(",");

	for(i=1;i<=objectNum;i++)
	{
		startX = parseInt(canvas.width*Math.random());
		startY = parseInt(canvas.height*Math.random());
		sx = parseInt(10*Math.random());
		sy = parseInt(10*Math.random());

		color = c[parseInt(c.length*Math.random())];
		sessionStorage.setItem('ball_'+i, startX+"_"+startY+"_"+sx+"_"+sy+"_"+color);       
	}

	setInterval(draw, 20);     // 设置绘图周期为 20 毫秒
} 
 </script> 
 
分享到:
评论

相关推荐

    html5 canvas彩色爆炸的小球动画特效

    在这个“html5 canvas彩色爆炸的小球动画特效”中,我们主要探讨的是如何利用HTML5 Canvas API来创建一个生动有趣的彩色小球爆炸动画。 首先,我们需要在HTML文档中设置一个`&lt;canvas&gt;`元素,作为画布。这个元素是...

    html5 canvas实现的圆点线条躲避小球类小游戏源码.zip

    2. **Canvas绘图API**: - `fillRect(x, y, width, height)`:绘制填充矩形。 - `strokeRect(x, y, width, height)`:绘制矩形边框。 - `beginPath()`:开始一个新的路径。 - `moveTo(x, y)`:将当前绘图位置...

    J2ME自由滚动的小球

    5. **事件处理**: 要让小球滚动,需要监听用户的输入,如按键事件。J2ME通过KeyListener接口实现这一功能。开发者需要注册KeyListener,并在按键事件触发时更新小球的运动方向。 6. **动画原理**: 小球滚动的动画...

    HTML5 Canvas粒子球散落特效.zip

    在这个“HTML5 Canvas粒子球散落特效”项目中,我们看到的是利用Canvas API创建的一种视觉效果,其中小球粒子从屏幕顶部散落而下,形成动态的动画场景。 首先,我们要理解Canvas的基本概念。HTML5的`&lt;canvas&gt;`元素...

    便利贴--8{酷炫背景,小球随鼠标移动,可自由设置小球属性}

    首先,HTML5引入了Canvas元素,这是一个矩形区域,通过JavaScript API,开发者可以在其中进行像素级别的绘图操作。在这个便利贴应用中,Canvas可能被用作背景画布,通过编程方式绘制出各种酷炫的图案和效果,给用户...

    h5_canvas2D简单物理引擎和简单开发.zip

    在"earth"这个子文件中,可能是实现了一个与地球相关的游戏或动画,比如让一个小球在重力作用下滚动或飞行。这个子项目可以用来演示如何将物理引擎的原理应用到实际场景中。 通过学习和实践这个项目,开发者可以...

    canvas学习之API整理笔记(二)

    在本文中,我们将深入探讨HTML5的canvas API,特别是高级动画、像素操作和性能优化这三个核心主题。canvas作为Web开发中的一个强大工具,允许开发者直接在网页上进行图形绘制和动画制作。 首先,我们来看看高级动画...

    HTML5几个小游戏

    这个"HTML5几个小游戏"的压缩包很可能包含了一些基础的HTML5游戏示例,例如使用Canvas绘制图形、实现基本的用户交互和游戏逻辑。通过学习这些示例,初学者可以快速掌握HTML5游戏开发的基本技巧,并逐步构建自己的...

    android迷宫小球小游戏

    为了实现小球的滚动动画,可以使用`postInvalidate()`方法定期重绘界面,更新小球的位置。 5. **碰撞检测**: 迷宫墙壁与小球之间的碰撞检测是游戏的关键部分。你可以通过比较小球的边界和墙壁的位置来进行简单的...

    android 小球快跑 游戏原代码

    - Canvas用于在SurfaceView上进行实际的绘图操作,如绘制小球、轨道等元素。 3. **游戏循环(Game Loop)**: - "小球快跑"的核心是游戏循环,它不断检测用户输入、更新游戏状态、重绘屏幕。游戏循环一般包括...

    Android应用源码之(迷宫小球)-IT计算机-毕业设计.zip

    这里涉及到了Canvas的绘图方法,如drawRect()、drawCircle()等,以及触摸事件处理,以实现用户对小球的操控。 4. **游戏逻辑**:这部分代码处理小球的移动、碰撞检测、过关条件检查等。可能使用了物理引擎库(如Box...

    彩色圆球自由掉落HTML5特效

    3. **Canvas绘图API**:Canvas提供了一系列绘图方法,如`fillRect()`, `strokeRect()`, `arc()`, `beginPath()`, `fill()`, `stroke()`等。在这个特效中,开发者可能会使用`arc()`来绘制圆球,`beginPath()`和`fill...

    HTML5倾斜迷宫小游戏

    综上所述,"HTML5倾斜迷宫小游戏"融合了HTML5的多种核心技术,包括Canvas绘图、事件处理、物理模拟、算法应用、响应式设计等,提供了一次既富有挑战又充满乐趣的在线游戏体验。通过分析和学习这个游戏的源码,开发者...

    js特效代码大全

    9. **canvas绘图**:HTML5的canvas元素提供了一种在网页上绘制图形的方式,通过JavaScript可以创建复杂的2D动画和游戏特效。 10. **WebGL**:对于3D效果,WebGL提供了在浏览器中进行硬件加速的3D图形渲染。Three.js...

    Android开发-自定义View-AndroidStudio(十八)自定义水波纹(2)

    在onDraw()中,我们将使用Canvas对象进行绘图操作,例如画出水波纹的形状和动态变化。 Canvas是Android图形绘制的基础,它可以理解为一个画布,我们在其上使用Paint对象进行绘画。Paint对象包含了颜色、样式、字体...

    各种炫酷效果的自定义view

    这些效果的实现涉及到Android UI编程的核心技术,包括绘图、动画和事件处理等方面。下面将对这些知识点进行详细的解释和探讨。 首先,波浪水波动画是通过Canvas和Paint类来实现的。在Android中,我们可以利用onDraw...

    WillFlow_FollowBallView

    这样可以确保小球在正确的区域内移动,即使控件被放置在布局的不同位置或有滚动操作。 4. **动画效果**:为了让小球移动更加平滑,开发者可能使用了ValueAnimator或ObjectAnimator来实现动画效果。这可以使小球在...

    仿360手机卫士的自定义波浪球形进度View

    在这个方法里,我们可以使用`Canvas`对象进行绘图,包括画小球、波浪线以及进度指示。 接下来,我们需要定义一些属性,如小球的数量、颜色、大小,波浪的形状、速度、颜色等。这些属性可以通过XML布局文件或者代码...

    JS实现随机乱撞彩色圆球特效的方法

    1. **Canvas API**: Canvas是HTML5的一个重要特性,它提供了一个二维绘图表面,允许开发者使用JavaScript进行图形绘制。在本实例中,`&lt;canvas&gt;`标签用于创建画布,然后通过`getContext('2d')`获取2D渲染上下文,这是...

Global site tag (gtag.js) - Google Analytics