﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Changewater</title>
	<atom:link href="http://changewater.cn/blog/index.php?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://changewater.cn/blog</link>
	<description></description>
	<lastBuildDate>Mon, 09 Apr 2012 15:49:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>April</title>
		<link>http://changewater.cn/blog/?p=569</link>
		<comments>http://changewater.cn/blog/?p=569#comments</comments>
		<pubDate>Mon, 09 Apr 2012 15:49:59 +0000</pubDate>
		<dc:creator>Cup</dc:creator>
				<category><![CDATA[cup'life]]></category>

		<guid isPermaLink="false">http://changewater.cn/blog/?p=569</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><img src="http://changewater.cn/blog/wp-content/uploads/2012/04/12_4.jpg" alt="" title="12_4" width="600" height="1542" class="alignnone size-full wp-image-570" /></p>
]]></content:encoded>
			<wfw:commentRss>http://changewater.cn/blog/?feed=rss2&amp;p=569</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5 Particles</title>
		<link>http://changewater.cn/blog/?p=561</link>
		<comments>http://changewater.cn/blog/?p=561#comments</comments>
		<pubDate>Fri, 06 Apr 2012 07:48:18 +0000</pubDate>
		<dc:creator>Cup</dc:creator>
				<category><![CDATA[Html5]]></category>
		<category><![CDATA[Program]]></category>

		<guid isPermaLink="false">http://changewater.cn/blog/?p=561</guid>
		<description><![CDATA[JavaScript 3D library &#8211; three.js
功能很强大啊 做了个 demo分享一下



&#60;code&#62;[javascript]
			var container, stats;
			var camera, scene, renderer, group, particle;
			var mouseX = 0, mouseY = 0;
			var windowHalfX = window.innerWidth / 2;
			var windowHalfY = window.innerHeight / 2;
            var particles=[];
			var img
			var canvas
			var context
          [...]]]></description>
			<content:encoded><![CDATA[<p>JavaScript 3D library &#8211; three.js<br />
功能很强大啊 做了个<a href="http://changewater.cn/demo/ChangewaterParticles/ChangewaterParticles.html"> demo分享一下</a><br />
<a href="http://changewater.cn/demo/ChangewaterParticles/ChangewaterParticles.html"><br />
<img class="alignnone size-full wp-image-565" title="part" src="http://changewater.cn/blog/wp-content/uploads/2012/04/part.jpg" alt="" width="600" height="229" /><br />
</a><br />
&lt;code&gt;[javascript]<br />
			var container, stats;<br />
			var camera, scene, renderer, group, particle;<br />
			var mouseX = 0, mouseY = 0;</p>
<p>			var windowHalfX = window.innerWidth / 2;<br />
			var windowHalfY = window.innerHeight / 2;</p>
<p>            var particles=[];</p>
<p>			var img<br />
			var canvas<br />
			var context<br />
            var pixelColor;<br />
			var colorArr = new Array();</p>
<p>			initColor();<br />
			function initColor()<br />
			{<br />
				canvas = document.createElement(&#8220;canvas&#8221;);<br />
				context = canvas.getContext(&#8220;2d&#8221;);<br />
				img = new Image();<br />
	            img.src = &#8220;1.gif&#8221;<br />
				img.onload = function () {<br />
				    context.drawImage(img,100,0);<br />
					pixelColor=context.getImageData(100,0,60,60);</p>
<p>					var num=0;<br />
					for(var i=0;i</p>
<pixelColor.data.length;i+=4){<br />
							colorArr[num] = ["0x",(pixelColor.data[i].toString(16).toUpperCase())<br />
											   ,(pixelColor.data[i+1].toString(16).toUpperCase())<br />
											   ,(pixelColor.data[i+2].toString(16).toUpperCase())<br />
											].join(&#8220;&#8221;);<br />
	                    num++;<br />
					}</p>
<p>					init();<br />
			        animate();<br />
				}<br />
			}</p>
<p>			function init()<br />
			{<br />
				container = document.createElement( &#8216;div&#8217; );<br />
				document.body.appendChild( container );</p>
<p>				camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 1, 3000 );<br />
				camera.position.z = 1000;</p>
<p>				scene = new THREE.Scene();</p>
<p>				scene.add( camera );</p>
<p>				var PI2 = Math.PI * 2;<br />
				var program = function ( context ) {</p>
<p>					context.beginPath();<br />
					context.arc( 0, 0, 1, 0, PI2, true );<br />
					context.closePath();<br />
					context.fill();</p>
<p>				}</p>
<p>				group = new THREE.Object3D();<br />
				scene.add( group );</p>
<p>                var tyc=["0x",(pixelColor.data[0].toString(16).toUpperCase())<br />
							 ,(pixelColor.data[0].toString(16).toUpperCase())<br />
							 ,(pixelColor.data[0].toString(16).toUpperCase())<br />
						].join(&#8220;&#8221;);</p>
<p>				var num=0<br />
				for ( var i = 0; i < 60; i++ ) {<br />
                    for ( var j = 0; j < 60; j++ ) {</p>
<p>					particle = new THREE.Particle( new THREE.ParticleCanvasMaterial( { color:colorArr[num], program: program } ) );<br />
					particle.position.x = i*6;<br />
					particle.position.y = j*6;<br />
					particle.position.z =0;<br />
					particle.scale.x = particle.scale.y = Math.random() * 5 + 2;<br />
					group.add( particle );</p>
<p>					particles[num]=particle;<br />
					num++;<br />
					}<br />
				}</p>
<p>				renderer = new THREE.CanvasRenderer();<br />
				renderer.setSize( window.innerWidth, window.innerHeight );<br />
				container.appendChild( renderer.domElement );</p>
<p>				stats = new Stats();<br />
				stats.domElement.style.position = &#8216;absolute&#8217;;<br />
				stats.domElement.style.top = &#8216;0px&#8217;;<br />
				container.appendChild( stats.domElement );</p>
<p>				document.addEventListener( &#8216;mousemove&#8217;, onDocumentMouseMove, false );<br />
				document.addEventListener( &#8216;touchstart&#8217;, onDocumentTouchStart, false );<br />
				document.addEventListener( &#8216;touchmove&#8217;, onDocumentTouchMove, false );<br />
				document.addEventListener( &#8216;mousedown&#8217;, onDocumentMouseDown, false );<br />
			}</p>
<p>			//<br />
			function onDocumentMouseMove( event )<br />
			{<br />
				mouseX = event.clientX &#8211; windowHalfX;<br />
				mouseY = event.clientY &#8211; windowHalfY;<br />
			}</p>
<p>			function onDocumentTouchStart( event )<br />
			{<br />
				if ( event.touches.length == 1 )<br />
				{<br />
					event.preventDefault();<br />
					mouseX = event.touches[ 0 ].pageX &#8211; windowHalfX;<br />
					mouseY = event.touches[ 0 ].pageY &#8211; windowHalfY;<br />
				}<br />
			}</p>
<p>			function onDocumentTouchMove( event )<br />
			{<br />
				if ( event.touches.length == 1 )<br />
				{<br />
					event.preventDefault();<br />
					mouseX = event.touches[ 0 ].pageX &#8211; windowHalfX;<br />
					mouseY = event.touches[ 0 ].pageY &#8211; windowHalfY;<br />
				}<br />
			}</p>
<p>			var IsOpen=false;<br />
			function onDocumentMouseDown( event )<br />
			{<br />
				event.preventDefault();<br />
                if(IsOpen)<br />
				{<br />
					for ( var i = 0; i < particles.length; i++ ) {<br />
						new TWEEN.Tween( particles[i].position ).to( {<br />
							x: Math.random() * 200 &#8211; 100,<br />
							y: Math.random() * 200 &#8211; 100,<br />
							z: Math.random() * 200 &#8211; 100 }, 200 )<br />
						.easing( TWEEN.Easing.Elastic.EaseOut).start();<br />
					}<br />
				}else<br />
				{<br />
					for ( var i = 0; i < particles.length; i++ ) {<br />
						new TWEEN.Tween( particles[i].position ).to( {<br />
							x: Math.random() * 2000 &#8211; 1000,<br />
							y: Math.random() * 2000 &#8211; 1000,<br />
							z: Math.random() * 2000 &#8211; 1000 }, 2000 )<br />
						.easing( TWEEN.Easing.Elastic.EaseOut).start();<br />
					}<br />
				}<br />
				IsOpen=!IsOpen;<br />
			}</p>
<p>			//<br />
			function animate()<br />
			{<br />
				requestAnimationFrame( animate );<br />
				render();<br />
				stats.update();<br />
			}</p>
<p>			function render()<br />
			{<br />
                TWEEN.update();<br />
				camera.position.x += ( mouseX*2 &#8211; camera.position.x ) * 0.1;<br />
				camera.position.y += ( &#8211; mouseY*2 &#8211; camera.position.y ) * 0.1;<br />
				camera.lookAt( scene.position );<br />
				//group.rotation.x += 0.01;<br />
				//group.rotation.y += 0.02;<br />
				renderer.render( scene, camera );<br />
			}<br />
[/javascript]&lt;/code&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://changewater.cn/blog/?feed=rss2&amp;p=561</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Countdown</title>
		<link>http://changewater.cn/blog/?p=554</link>
		<comments>http://changewater.cn/blog/?p=554#comments</comments>
		<pubDate>Wed, 28 Mar 2012 13:55:31 +0000</pubDate>
		<dc:creator>Cup</dc:creator>
				<category><![CDATA[Html5]]></category>
		<category><![CDATA[Program]]></category>

		<guid isPermaLink="false">http://changewater.cn/blog/?p=554</guid>
		<description><![CDATA[浏览器能承载天下 前段时间看到apple官网的JS倒计时不错
抽空用JS实现了一下
抽空看看离世界末日还有多久 好好珍惜身边的人和事

]]></description>
			<content:encoded><![CDATA[<p>浏览器能承载天下 前段时间看到apple官网的JS倒计时不错<br />
抽空用JS实现了一下<br />
抽空看看离世界末日还有多久 好好珍惜身边的人和事<br />
<a href="http://changewater.cn/demo/countdown/"><img src="http://changewater.cn/blog/wp-content/uploads/2012/03/countdown.jpg" alt="" title="countdown" width="520" height="98" class="alignnone size-full wp-image-559" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://changewater.cn/blog/?feed=rss2&amp;p=554</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unity3D</title>
		<link>http://changewater.cn/blog/?p=489</link>
		<comments>http://changewater.cn/blog/?p=489#comments</comments>
		<pubDate>Wed, 01 Feb 2012 04:43:18 +0000</pubDate>
		<dc:creator>Cup</dc:creator>
				<category><![CDATA[Program]]></category>
		<category><![CDATA[Unity3D]]></category>

		<guid isPermaLink="false">http://changewater.cn/blog/?p=489</guid>
		<description><![CDATA[关注U3D挺长时间了 最近发现U3D有种愈演愈烈的架势
分享一个去年瞎做的 demo

]]></description>
			<content:encoded><![CDATA[<p>关注U3D挺长时间了 最近发现U3D有种愈演愈烈的架势<br />
分享一个去年瞎做的 <a href="http://changewater.cn/demo/U3D_tank/">demo</a></p>
<p><a href="http://changewater.cn/demo/U3D_tank/"><img class="alignnone size-full wp-image-492" title="tank" src="http://changewater.cn/blog/wp-content/uploads/2012/02/tank.jpg" alt="tank" width="595" height="389" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://changewater.cn/blog/?feed=rss2&amp;p=489</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NingXia</title>
		<link>http://changewater.cn/blog/?p=482</link>
		<comments>http://changewater.cn/blog/?p=482#comments</comments>
		<pubDate>Tue, 31 Jan 2012 04:28:12 +0000</pubDate>
		<dc:creator>Cup</dc:creator>
				<category><![CDATA[Photo]]></category>
		<category><![CDATA[cup'life]]></category>

		<guid isPermaLink="false">http://changewater.cn/blog/?p=482</guid>
		<description><![CDATA[背井离乡打拼了这些年 回头看看家乡还是那么舒服那么美
发展快到让我觉得自己在退步了



]]></description>
			<content:encoded><![CDATA[<p>背井离乡打拼了这些年 回头看看家乡还是那么舒服那么美</p>
<p>发展快到让我觉得自己在退步了</p>
<p><img class="alignnone size-full wp-image-483" title="jan1" src="http://changewater.cn/blog/wp-content/uploads/2012/01/jan1.jpg" alt="" width="600" height="904" /><br />
<img class="alignnone size-full wp-image-484" title="jan2" src="http://changewater.cn/blog/wp-content/uploads/2012/01/jan2.jpg" alt="" width="600" height="903" /></p>
<p><img class="alignnone size-full wp-image-485" title="jan3" src="http://changewater.cn/blog/wp-content/uploads/2012/01/jan3.jpg" alt="" width="600" height="1207" /></p>
]]></content:encoded>
			<wfw:commentRss>http://changewater.cn/blog/?feed=rss2&amp;p=482</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alive</title>
		<link>http://changewater.cn/blog/?p=479</link>
		<comments>http://changewater.cn/blog/?p=479#comments</comments>
		<pubDate>Thu, 29 Sep 2011 13:38:00 +0000</pubDate>
		<dc:creator>Cup</dc:creator>
				<category><![CDATA[Photo]]></category>
		<category><![CDATA[cup'life]]></category>

		<guid isPermaLink="false">http://changewater.cn/blog/?p=479</guid>
		<description><![CDATA[有些日子没出来活动了 今天出来才觉得
身体被自己糟蹋的得了大病  真不知还得病多久 医生居然说最少还得半年
每天吃那么多药 没病也能吃出些病来
想想片子上已经空了的那半边肺  后怕..
本想着 在休息的这些日子 做很多事 可是 吃了药  人不得不睡觉
吃了睡  睡了吃
梦总是很多 可想想正事 一切还是迷茫
房价好像不怎么涨了 可是好像还是买不起啊
有同事最近要结婚了 恭喜 可惜我也去不了
没病的时候 经常幻想有 几个月 辞职出去 川藏  来一回间隔年
呵呵 ..现在终于有时间了 却哪也去不了  连门口的公园一口气都 逛不下来..   想想真可笑
苦笑..

]]></description>
			<content:encoded><![CDATA[<p>有些日子没出来活动了 今天出来才觉得</p>
<p>身体被自己糟蹋的得了大病  真不知还得病多久 医生居然说最少还得半年</p>
<p>每天吃那么多药 没病也能吃出些病来</p>
<p>想想片子上已经空了的那半边肺  后怕..</p>
<p>本想着 在休息的这些日子 做很多事 可是 吃了药  人不得不睡觉</p>
<p>吃了睡  睡了吃</p>
<p>梦总是很多 可想想正事 一切还是迷茫</p>
<p>房价好像不怎么涨了 可是好像还是买不起啊</p>
<p>有同事最近要结婚了 恭喜 可惜我也去不了</p>
<p>没病的时候 经常幻想有 几个月 辞职出去 川藏  来一回间隔年</p>
<p>呵呵 ..现在终于有时间了 却哪也去不了  连门口的公园一口气都 逛不下来..   想想真可笑</p>
<p>苦笑..</p>
<p><img class="alignnone size-full wp-image-480" title="IMG_5276" src="http://changewater.cn/blog/wp-content/uploads/2011/09/IMG_5276.jpg" alt="" width="600" height="445" /></p>
]]></content:encoded>
			<wfw:commentRss>http://changewater.cn/blog/?feed=rss2&amp;p=479</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Particles Html5 Javascript</title>
		<link>http://changewater.cn/blog/?p=463</link>
		<comments>http://changewater.cn/blog/?p=463#comments</comments>
		<pubDate>Wed, 18 May 2011 08:31:15 +0000</pubDate>
		<dc:creator>Cup</dc:creator>
				<category><![CDATA[Program]]></category>
		<category><![CDATA[Html5]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://changewater.cn/blog/?p=463</guid>
		<description><![CDATA[
建议用 Chrome  ,  Firefox 浏览   Chrome 的运行效率会高一些
&#60;code&#62;[javascript]
var MAX_NUM = 3000;
var WIDTH = window.innerWidth;
var HEIGHT = window.innerHeight;
function Particle()
{
this.initialize.apply(this, arguments);
}
Particle.prototype =
{
initialize: function(x, y)
{
this.x = x;
this.y = y;
},
x : 0,
y : 0,
vx : 0,
vy : 0,
next : null // Link
};
// 画布
var canvas = document.createElement(&#8220;canvas&#8221;);
canvas.width = WIDTH;
canvas.height = HEIGHT;
document.body.appendChild(canvas);
var context = canvas.getContext(&#8220;2d&#8221;);
var first;
var old;
// 创建粒子
for(var i=0; i&#60;MAX_NUM; i++) {
var [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://changewater.cn/demo/ParticleHtml5_v1/" target="_blank"><img class="alignnone size-full wp-image-472" title="p" src="http://changewater.cn/blog/wp-content/uploads/2011/05/p.jpg" alt="" width="600" height="350" /></a></p>
<p>建议用 Chrome  ,  Firefox 浏览   Chrome 的运行效率会高一些</p>
<p>&lt;code&gt;[javascript]</p>
<p>var MAX_NUM = 3000;</p>
<p>var WIDTH = window.innerWidth;</p>
<p>var HEIGHT = window.innerHeight;</p>
<p>function Particle()</p>
<p>{</p>
<p>this.initialize.apply(this, arguments);</p>
<p>}</p>
<p>Particle.prototype =</p>
<p>{</p>
<p>initialize: function(x, y)</p>
<p>{</p>
<p>this.x = x;</p>
<p>this.y = y;</p>
<p>},</p>
<p>x : 0,</p>
<p>y : 0,</p>
<p>vx : 0,</p>
<p>vy : 0,</p>
<p>next : null // Link</p>
<p>};</p>
<p>// 画布</p>
<p>var canvas = document.createElement(&#8220;canvas&#8221;);</p>
<p>canvas.width = WIDTH;</p>
<p>canvas.height = HEIGHT;</p>
<p>document.body.appendChild(canvas);</p>
<p>var context = canvas.getContext(&#8220;2d&#8221;);</p>
<p>var first;</p>
<p>var old;</p>
<p>// 创建粒子</p>
<p>for(var i=0; i&lt;MAX_NUM; i++) {</p>
<p>var p = new Particle(Math.random() * WIDTH , Math.random() * HEIGHT);</p>
<p>if(first == null) {</p>
<p>first = old = p;</p>
<p>} else {</p>
<p>old.next = p;</p>
<p>old = p;</p>
<p>}</p>
<p>}</p>
<p>document.addEventListener(&#8216;mousemove&#8217;, mouseMoveHandler, false);</p>
<p>var mouseX = 0;</p>
<p>var mouseY = 0;</p>
<p>function mouseMoveHandler(e)</p>
<p>{</p>
<p>mouseX = e.clientX ;</p>
<p>mouseY = e.clientY ;</p>
<p>}</p>
<p>setInterval(loop, 1000 / 60);//循环</p>
<p>function loop() {</p>
<p>// 填充背景</p>
<p>context.fillStyle = &#8220;rgb(0, 0, 0)&#8221;;</p>
<p>context.fillRect(0, 0, WIDTH, HEIGHT);</p>
<p>var n = first;</p>
<p>//</p>
<p>do {</p>
<p>var diffX = mouseX &#8211; n.x;</p>
<p>var diffY = mouseY &#8211; n.y;</p>
<p>var acc = 30 / (diffX * diffX + diffY * diffY);</p>
<p>var accX = acc * diffX;</p>
<p>var accY = acc * diffY;</p>
<p>n.vx += accX;</p>
<p>n.vy += accY;</p>
<p>n.x += n.vx;</p>
<p>n.y += n.vy;</p>
<p>n.vx *= 0.96;</p>
<p>n.vy *= 0.96;</p>
<p>if (n.x &gt; WIDTH)</p>
<p>n.x = 0;</p>
<p>else if (n.x &lt; 0)</p>
<p>n.x = WIDTH;</p>
<p>if (n.y &gt; HEIGHT)</p>
<p>n.y = 0;</p>
<p>else if (n.y &lt; 0)</p>
<p>n.y = HEIGHT;</p>
<p>// 填充点</p>
<p>context.fillStyle = &#8220;rgb(195, 35, 100)&#8221;;</p>
<p>context.fillRect(n.x, n.y, Math.floor(Math.random()*4+1), Math.floor(Math.random()+1));</p>
<p>}</p>
<p>while (n = n.next);</p>
<p>}</p>
<p>[/javascript]&lt;/code&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://changewater.cn/blog/?feed=rss2&amp;p=463</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Car Game</title>
		<link>http://changewater.cn/blog/?p=454</link>
		<comments>http://changewater.cn/blog/?p=454#comments</comments>
		<pubDate>Mon, 16 May 2011 10:40:21 +0000</pubDate>
		<dc:creator>Cup</dc:creator>
				<category><![CDATA[Program]]></category>

		<guid isPermaLink="false">http://changewater.cn/blog/?p=454</guid>
		<description><![CDATA[
&#60;code&#62;[as3]
//物体透视位置
private function move(tree:GameTree):void {
var angle:Number = (gameRotation &#8211; 90) / 180 * Math.PI;
var cosY:Number = Math.cos(angle);
var sinY:Number = Math.sin(angle);
var vx:int = tree.xpos + xPos;
var vy:int = tree.zpos &#8211; yPos;
var tx:Number = vy * sinY + vx * cosY;
var ty:Number = vy * cosY &#8211; vx * sinY;
tree.dis = ty;
if (ty &#60; 0) {
tree.visible = false;
} [...]]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://changewater.cn/demo/Car.swf" /><embed type="application/x-shockwave-flash" width="600" height="400" src="http://changewater.cn/demo/Car.swf"></embed></object></p>
<p>&lt;code&gt;[as3]</p>
<p>//物体透视位置<br />
private function move(tree:GameTree):void {<br />
var angle:Number = (gameRotation &#8211; 90) / 180 * Math.PI;<br />
var cosY:Number = Math.cos(angle);<br />
var sinY:Number = Math.sin(angle);<br />
var vx:int = tree.xpos + xPos;<br />
var vy:int = tree.zpos &#8211; yPos;<br />
var tx:Number = vy * sinY + vx * cosY;<br />
var ty:Number = vy * cosY &#8211; vx * sinY;<br />
tree.dis = ty;<br />
if (ty &lt; 0) {<br />
tree.visible = false;<br />
} else {<br />
tree.visible = true;<br />
var StripCount:int = gridTotalHeight;<br />
var mCamHeight:int = heightScale;<br />
var d:int = -ty * (StripCount * 2 * mCamHeight) / (StripCount + 2 * mCamHeight * ty);<br />
tree.x = tx * mCamHeight / StripCount * ((StripCount + d) * 2.2);<br />
tree.y = d;<br />
tree.scaleX = tree.scaleY = ((StripCount + d) * (mCamHeight) / 1) * .01;<br />
tree.scaleX = tree.scaleY = tree.scaleX * .5;<br />
}<br />
}</p>
<p>//排序<br />
private function sortZ():void {<br />
trees.sortOn(&#8220;dis&#8221;, Array.DESCENDING | Array.NUMERIC);<br />
for (var i:uint = 0; i &lt; trees.length; i++) {<br />
var tree:GameTree = trees[i];<br />
objSpr.setChildIndex(tree, i);<br />
}<br />
}</p>
<p>//创建场景<br />
private function create3DScene():void {<br />
objGrids = new Object();<br />
mapSpr = new Sprite();<br />
objSpr = new Sprite();<br />
mapSpr.y = gameHeight/2;<br />
Screen.addChild(mapSpr);<br />
objSpr.y = gameHeight;<br />
objSpr.x = gameWidth / 2;<br />
Screen.addChild(objSpr);<br />
createGrids_();<br />
cosRot = Math.cos(gameRotation * (Math.PI / 180));<br />
sinRot = Math.sin(gameRotation * (Math.PI / 180));<br />
this.addEventListener(Event.ENTER_FRAME, onEnterFrame);<br />
Key.initialize(stage);<br />
createObj();<br />
}</p>
<p>private function gameEnterFrame():void {<br />
if (Key.isDown(37)) ////lift<br />
{<br />
ro += .5;<br />
if (ro &gt; 3) ro = 4;<br />
angleY = ( -ro / 180) * Math.PI;</p>
<p>if (lean &lt; 4) lean+=.5;</p>
<p>} else if (Key.isDown(39)) ////right<br />
{<br />
ro -= .5;<br />
if (ro &lt; -3) ro = -4;<br />
angleY = (ro / 180) * Math.PI;</p>
<p>if (lean &gt; -4) lean-=.5;</p>
<p>} else {<br />
if (ro &gt; 0) {<br />
ro -= .5;<br />
} else if(ro &lt; 0) {<br />
ro += .5;<br />
}<br />
angleY = 0;<br />
}</p>
<p>if (Math.abs(lean) &lt; 0.1)<br />
{<br />
lean = 0;<br />
} else {<br />
lean *= 0.8;<br />
}<br />
Screen.rotation = lean;</p>
<p>if (Key.isDown(38) &amp;&amp; speed &lt;= 5) ////加速<br />
{<br />
speed += 0.3;<br />
} else if (Key.isDown(40) &amp;&amp; speed &gt;= -2) /////减速<br />
{<br />
speed -= 0.15;<br />
} else {<br />
speed *= 0.94;<br />
if (speed &lt; 0) speed = 0;<br />
}</p>
<p>/////sky<br />
for (var j:int = 1; j &lt;=3; j++)<br />
{<br />
m1Back["s" + j].x += j +ro * j;<br />
if (m1Back["s" + j].x &gt;= 0) m1Back["s" + j].x = -510;<br />
if (m1Back["s" + j].x &lt;= -1024) m1Back["s" + j].x = -514;<br />
}</p>
<p>gameRotation += ro;<br />
cosRot = Math.cos(gameRotation * (Math.PI / 180));<br />
sinRot = Math.sin(gameRotation * (Math.PI / 180));</p>
<p>var friction:Number = .94;///</p>
<p>vy1 -= (friction * Math.cos(gameRotation*(Math.PI/180)))*speed/11;<br />
vx1 += (friction * Math.sin(gameRotation * (Math.PI / 180))) * speed / 11;</p>
<p>if (Tree != null) Tree.zpos ++;</p>
<p>vx1 *= friction;<br />
vy1 *= friction;<br />
xPos += vy1;<br />
yPos += vx1;</p>
<p>//////地图<br />
pp.x = Math.abs(xPos * .1);<br />
pp.y = Math.abs(yPos * .1);</p>
<p>////赛道碰撞检测<br />
if (!map1Test.hitTestPoint(Math.abs(xPos), Math.abs(yPos), true)) {<br />
speed *= 0.8;<br />
if (speed &lt; .01) speed = 0;</p>
<p>//////车震<br />
var zheny:Number = Math.random() * speed * 2 &#8211; speed;<br />
Screen.y = zheny * 3;<br />
Screen.x = zheny;<br />
}</p>
<p>for (var i:int = 1; i &lt;= gridNum; i++ ) {<br />
objGrids["m" + i].rotation = gameRotation-90;<br />
objGrids["m" + i].m1.x = xPos;<br />
objGrids["m" + i].m1.y = yPos;<br />
}</p>
<p>objEnterFrame();<br />
}</p>
<p>private function onEnterFrame(evt:Event):void {<br />
gameEnterFrame();<br />
}</p>
<p>private function createGrid_(mc:MovieClip, h:int):Mask {<br />
var grid:Mask = new Mask();<br />
mc.mask = grid;<br />
return grid;<br />
}</p>
<p>//生成格子<br />
private function createGrids_():void {<br />
var gridHeight:int = 0;<br />
for (var i:int = 1; i &lt;= gridNum; i++) {<br />
var map:MapMc = new MapMc();<br />
objGrids["m" + i] = map;<br />
mapSpr.addChild(map);<br />
map.x = gameWidth / 2;<br />
map.y = gameHeight / 2;<br />
map.scaleX = map.scaleY = (gridHeight/gridTotalHeight)*gridTotalHeight * heightScale*.01;<br />
map.m1.x = yPos;<br />
map.m1.y = xPos;<br />
var grid:Mask = createGrid_(map, -gridHeight);<br />
grid.y = gridHeight;<br />
mapSpr.addChild(grid);<br />
var scale1:Number = Math.pow(i/(gridTotalHeight/2.5), 1.5);<br />
var height1:Number = Math.round(1 + (4 &#8211; 1) * scale1);<br />
grid.height = height1;<br />
gridHeight += height1;<br />
}</p>
<p>[/as3]&lt;/code&gt;</p>
<p>第一视角游戏</p>
<p>来自很老的一个例子        源文件 <a href="http://changewater.cn/demo/z_mapping.fla" target="_blank">z_mapping.fla</a></p>
]]></content:encoded>
			<wfw:commentRss>http://changewater.cn/blog/?feed=rss2&amp;p=454</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>University</title>
		<link>http://changewater.cn/blog/?p=449</link>
		<comments>http://changewater.cn/blog/?p=449#comments</comments>
		<pubDate>Mon, 18 Apr 2011 15:46:51 +0000</pubDate>
		<dc:creator>Cup</dc:creator>
				<category><![CDATA[Photo]]></category>
		<category><![CDATA[cup'life]]></category>

		<guid isPermaLink="false">http://changewater.cn/blog/?p=449</guid>
		<description><![CDATA[今年春天来得很早  暖暖的
最近结婚的朋友特别多  有点小惆怅
不过想想 玩的很好的一个发小孩子都上小学了 既然这样自己也无所谓了
周末去周边的大学散散步  又回想自己的 大学时怎么过的  呵呵
想想如今有时加班忙的昏天暗地 衣服都抽不出时间来洗
所以羡慕啊 呵呵
不过看豆豆还是挺乐的

]]></description>
			<content:encoded><![CDATA[<p>今年春天来得很早  暖暖的</p>
<p>最近结婚的朋友特别多  有点小惆怅</p>
<p>不过想想 玩的很好的一个发小孩子都上小学了 既然这样自己也无所谓了</p>
<p>周末去周边的大学散散步  又回想自己的 大学时怎么过的  呵呵</p>
<p>想想如今有时加班忙的昏天暗地 衣服都抽不出时间来洗</p>
<p>所以羡慕啊 呵呵</p>
<p>不过看豆豆还是挺乐的</p>
<p><img class="alignnone size-full wp-image-448" title="IMG_2024~~~" src="http://changewater.cn/blog/wp-content/uploads/2011/04/IMG_2024.jpg" alt="" width="600" height="400" /></p>
]]></content:encoded>
			<wfw:commentRss>http://changewater.cn/blog/?feed=rss2&amp;p=449</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Nice</title>
		<link>http://changewater.cn/blog/?p=438</link>
		<comments>http://changewater.cn/blog/?p=438#comments</comments>
		<pubDate>Wed, 02 Mar 2011 09:36:05 +0000</pubDate>
		<dc:creator>Cup</dc:creator>
				<category><![CDATA[Photo]]></category>
		<category><![CDATA[cup'life]]></category>

		<guid isPermaLink="false">http://changewater.cn/blog/?p=438</guid>
		<description><![CDATA[

]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-439" title="IMG_1344" src="http://changewater.cn/blog/wp-content/uploads/2011/03/IMG_1344.jpg" alt="" width="600" height="901" /></p>
<p><img class="alignnone size-full wp-image-440" title="IMG_1218" src="http://changewater.cn/blog/wp-content/uploads/2011/03/IMG_1218.jpg" alt="" width="600" height="900" /></p>
]]></content:encoded>
			<wfw:commentRss>http://changewater.cn/blog/?feed=rss2&amp;p=438</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

