大鱼吃小鱼游戏-fruit.js
2015-11-30 19:29
429 查看
// 定义果实对象类 var fruitObj = function() { this.alive = []; //果实生命状态的布尔bool this.orange = new Image(); //橙色果实 this.blue = new Image(); //蓝色果实 this.x = []; //果实x坐标 this.y = []; //果实y坐标 this.aneNO = []; this.fruitLargen = []; //果实生长大小变化量 this.spd = []; //果实生长速度、上浮速度的随机处理hi this.fruitType = []; //定义果实类型,用于区分橙色果实和蓝色果实。 } // 预设果实在画布中的数量为30个 fruitObj.prototype.num = 30; // 果实初始化 fruitObj.prototype.init = function() { for (var i = 0; i <this.num; i++) { this.alive[i] =false; this.x[i] = 0; this.y[i] = 0; this.spd[i] = Math.random() * 0.017 +0.003; //[0.03,0.2) //this.born(i); this.aneNO[i] = 0; this.fruitType[i] = ""; } this.orange.src = "./src/fruit.png"; this.blue.src = "./src/blue.png"; } // 画出果实,静态、动态的果实 fruitObj.prototype.draw = function() { for(var i =0; i < this.num; i++) { //draw //find an ane, grow, fly up if(this.alive[i] = true) { if(this.fruitType[i] == "blue") { var pic = this.blue; } else { var pic = this.orange; } if(this.fruitLargen[i] < 15) //果实的半径 { var NO = this.aneNO[i]; this.x[i] = ane.headx[NO]; this.y[i] = ane.heady[NO]; this.fruitLargen[i] += this.spd[i] *5 ; //果实生长的速度 } else { this.y[i] -= this.spd[i] *7 * deltaTime; //果实漂浮的速度 } /*画出果实生长、漂浮过程*/ ctx2.drawImage(pic, this.x[i] - this.fruitLargen[i] * 0.5, this.y[i] - this.fruitLargen[i] * 0.5, this.fruitLargen[i], this.fruitLargen[i]); if(this.y[i] < 10){ this.alive[i] = false; } } //console.log('deltaTime'); } } // 果实出生函数,果实随机生长在一个海葵上 fruitObj.prototype.born = function(i) { //var aneId = Math.floor(Math.random() *ane.num);//随机获取一个海葵,让果实在这个海葵上出生 this.aneNO[i] = Math.floor(Math.random() * ane.num); //this.x[i] = ane.headx[aneId]; //this.y[i] = ane.heady[aneId]; this.fruitLargen[i] = 0 ; this.alive[i] = true; var ran = Math.random() ; //console.log(aneId); //console.log(ran); if(ran < 0.3) { this.fruitType[i] = "blue"; } else { this.fruitType[i] = "orange"; } //console.log("ran"); } fruitObj.prototype.dead =function(i) { this.alive[i] = false; } // 果实监视功能,监视屏幕上有多少个活着的果实,如果果实少于15个,发出一个果实。 function fruitMonitor() { var number = 0; for(var i = 0; i < fruit.num; i++) { if(fruit.alive[i]) number++; if (number < 15) { sendFruit(); //return; } //sendFruit(); } } // 发出果实前进行判断, function sendFruit () { for(var i = 0; i < fruit.num; i++) { if(!fruit.alive[i]) { fruit.born(i); return; } } }
相关文章推荐
- Python动态类型的学习---引用的理解
- 我是运营,我没有假期
- 每个 Linux 游戏玩家都绝不想要的恼人体验
- 在 Fedora 上使用 Steam play 和 Proton 来玩 Windows 游戏
- Steam 让我们在 Linux 上玩 Windows 的游戏更加容易
- 如何使用 Steam Play 在 Linux 上玩仅限 Windows 的游戏
- 新一代iPad适配应用之游戏篇
- 土人系列AS入门教程 -- 对象篇
- VB实现的《QQ美女找茬游戏》作弊器实例
- C#托管堆对象实例包含内容分析
- C#实现获取不同对象中名称相同属性的方法
- javascript asp教程第十一课--Application 对象
- PowerShell中使用Out-String命令把对象转换成字符串输出的例子
- VBS教程:对象-正则表达式(RegExp)对象
- C#检查指定对象是否存在于ArrayList集合中的方法
- C#实现洗牌游戏实例
- C#实现的算24点游戏算法实例分析
- sql2008启动代理未将对象应用到实例解决方案
- C#实现简单的井字游戏实例
- C++编写简单的打靶游戏