cocoscreator 打地鼠代码实现
时间: 2023-08-24 20:09:59 浏览: 94
以下是一个简单的Cocos Creator打地鼠游戏的代码实现:
1. 创建场景和精灵
首先,在Cocos Creator中创建一个新场景,然后添加一个背景精灵和一个地鼠精灵。
2. 地鼠的运动
在地鼠脚本中,我们可以使用schedule函数来实现地鼠的运动。
```javascript
cc.Class({
extends: cc.Component,
properties: {
speed: 5, // 地鼠的速度
moveRange: 100, // 地鼠移动的范围
},
onLoad () {
// 记录地鼠的初始位置
this.initX = this.node.x;
// 地鼠向左或向右移动
this.direction = Math.random() > 0.5 ? 1 : -1;
// 开始地鼠运动
this.schedule(this.move, 0.1);
},
move () {
// 计算地鼠新的位置
let x = this.node.x + this.direction * this.speed;
let y = this.node.y;
// 判断是否超出移动范围
if (Math.abs(x - this.initX) > this.moveRange) {
this.direction *= -1;
}
// 更新地鼠的位置
this.node.setPosition(cc.v2(x, y));
},
});
```
3. 点击地鼠
在地鼠脚本中,我们可以添加一个鼠标点击事件来处理玩家点击地鼠的行为。
```javascript
cc.Class({
extends: cc.Component,
properties: {
scoreLabel: cc.Label, // 分数显示
speed: 5, // 地鼠的速度
moveRange: 100, // 地鼠移动的范围
score: 0, // 分数
},
onLoad () {
// 记录地鼠的初始位置
this.initX = this.node.x;
// 地鼠向左或向右移动
this.direction = Math.random() > 0.5 ? 1 : -1;
// 开始地鼠运动
this.schedule(this.move, 0.1);
// 添加鼠标点击事件
this.node.on(cc.Node.EventType.MOUSE_DOWN, this.onClick, this);
},
move () {
// 计算地鼠新的位置
let x = this.node.x + this.direction * this.speed;
let y = this.node.y;
// 判断是否超出移动范围
if (Math.abs(x - this.initX) > this.moveRange) {
this.direction *= -1;
}
// 更新地鼠的位置
this.node.setPosition(cc.v2(x, y));
},
onClick () {
// 增加分数
this.score += 10;
this.scoreLabel.string = 'Score: ' + this.score;
// 隐藏地鼠
this.node.active = false;
// 等待一段时间后重新显示地鼠
this.scheduleOnce(() => {
this.node.active = true;
}, 1);
},
});
```
4. 游戏结束
在场景脚本中,我们可以添加一个定时器来控制游戏时间。
```javascript
cc.Class({
extends: cc.Component,
properties: {
timerLabel: cc.Label, // 时间显示
time: 30, // 游戏时间
},
onLoad () {
// 开始倒计时
this.schedule(this.countdown, 1);
},
countdown () {
this.time--;
this.timerLabel.string = 'Time: ' + this.time;
// 时间到了,游戏结束
if (this.time <= 0) {
cc.director.loadScene('GameOver');
}
},
});
```
5. 游戏重置
在游戏结束场景中,我们可以添加一个按钮来重新开始游戏。
```javascript
cc.Class({
extends: cc.Component,
properties: {
scoreLabel: cc.Label, // 分数显示
},
onLoad () {
// 显示分数
let score = cc.sys.localStorage.getItem('score');
this.scoreLabel.string = 'Score: ' + score;
},
restart () {
// 重新开始游戏
cc.director.loadScene('Game');
},
});
```
阅读全文