参数更新和绘制分离
This commit is contained in:
		
							parent
							
								
									cfc1f7498d
								
							
						
					
					
						commit
						5f1157664d
					
				
							
								
								
									
										8
									
								
								game.js
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								game.js
									
									
									
									
									
								
							@ -36,7 +36,8 @@ function Game(id,options){
 | 
				
			|||||||
				y:0
 | 
									y:0
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			speed:1,				//速度等级,内部计算器times多少帧变化一次
 | 
								speed:1,				//速度等级,内部计算器times多少帧变化一次
 | 
				
			||||||
			update:function(){} 	//更新参数信息
 | 
								update:function(){}, 	//更新参数信息
 | 
				
			||||||
 | 
								draw:function(){}		//绘制
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
		for(var i in settings){
 | 
							for(var i in settings){
 | 
				
			||||||
			this[i] = options[i]||settings[i];
 | 
								this[i] = options[i]||settings[i];
 | 
				
			||||||
@ -89,9 +90,10 @@ function Game(id,options){
 | 
				
			|||||||
				f++;
 | 
									f++;
 | 
				
			||||||
				stage.items.forEach(function(item,index){
 | 
									stage.items.forEach(function(item,index){
 | 
				
			||||||
					if(!(f%item.speed)){
 | 
										if(!(f%item.speed)){
 | 
				
			||||||
						item.times = f/item.speed;		//计数器
 | 
											item.frames = f/item.speed;		//计数器
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
					item.update(_context);
 | 
										item.update();
 | 
				
			||||||
 | 
										item.draw(_context);
 | 
				
			||||||
				});
 | 
									});
 | 
				
			||||||
				_hander = requestAnimationFrame(fn);
 | 
									_hander = requestAnimationFrame(fn);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										8
									
								
								index.js
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								index.js
									
									
									
									
									
								
							@ -19,10 +19,10 @@
 | 
				
			|||||||
			width:100,
 | 
								width:100,
 | 
				
			||||||
			height:100,
 | 
								height:100,
 | 
				
			||||||
			speed:10,
 | 
								speed:10,
 | 
				
			||||||
			update:function(context){
 | 
								draw:function(context){
 | 
				
			||||||
				context.fillStyle = '#FC3';
 | 
									context.fillStyle = '#FC3';
 | 
				
			||||||
				context.beginPath();
 | 
									context.beginPath();
 | 
				
			||||||
				if(this.times%2){
 | 
									if(this.frames%2){
 | 
				
			||||||
					context.arc(this.x,this.y,this.width/2,.20*Math.PI,1.80*Math.PI,false);
 | 
										context.arc(this.x,this.y,this.width/2,.20*Math.PI,1.80*Math.PI,false);
 | 
				
			||||||
				}else{
 | 
									}else{
 | 
				
			||||||
					context.arc(this.x,this.y,this.width/2,.01*Math.PI,1.99*Math.PI,false);
 | 
										context.arc(this.x,this.y,this.width/2,.01*Math.PI,1.99*Math.PI,false);
 | 
				
			||||||
@ -41,7 +41,7 @@
 | 
				
			|||||||
		stage.createItem({
 | 
							stage.createItem({
 | 
				
			||||||
			x:game.width/2,
 | 
								x:game.width/2,
 | 
				
			||||||
			y:game.height*.6,
 | 
								y:game.height*.6,
 | 
				
			||||||
			update:function(context){
 | 
								draw:function(context){
 | 
				
			||||||
				context.font = 'bold 42px Helvetica';
 | 
									context.font = 'bold 42px Helvetica';
 | 
				
			||||||
				context.textAlign = 'center';
 | 
									context.textAlign = 'center';
 | 
				
			||||||
				context.textBaseline = 'middle';
 | 
									context.textBaseline = 'middle';
 | 
				
			||||||
@ -53,7 +53,7 @@
 | 
				
			|||||||
		stage.createItem({
 | 
							stage.createItem({
 | 
				
			||||||
			x:game.width-12,
 | 
								x:game.width-12,
 | 
				
			||||||
			y:game.height-5,
 | 
								y:game.height-5,
 | 
				
			||||||
			update:function(context){
 | 
								draw:function(context){
 | 
				
			||||||
				context.font = '14px Helvetica';
 | 
									context.font = '14px Helvetica';
 | 
				
			||||||
				context.textAlign = 'right';
 | 
									context.textAlign = 'right';
 | 
				
			||||||
				context.textBaseline = 'bottom';
 | 
									context.textBaseline = 'bottom';
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user