官网 快速上手: 制作第一个游戏 卡住了 貌似 走不通的样子

http://www.cocos.com/docs/creator/getting-started/quick-start.html
一直到
在随机位置生成星星都还顺利
然而 到下面一步

添加主角碰触收集星星的行为
按照官网的步骤,就被卡住了
而且 一直是 在加载页面

请问 有没有人 按照这个教程是走通了的?
是不是 教程有问题哦?

教程没有问题,你把报错发上来了看下

我按照 教程重新 撸了一遍,现在错到是不报了,
但是 player 触碰到星星 没有反应

Game.js
`cc.Class({
extends: cc.Component,

properties: {
    // 这个属性引用了星星预制资源
    starPrefab: {
        default: null,
        type: cc.Prefab
    },
    // 星星产生后消失时间的随机范围
    maxStarDuration: 0,
    minStarDuration: 0,
    // 地面节点,用于确定星星生成的高度
    ground: {
        default: null,
        type: cc.Node
    },
    // player 节点,用于获取主角弹跳的高度,和控制主角行动开关
    player: {
        default: null,
        type: cc.Node
    }
},

// use this for initialization
onLoad: function () {
    // 获取地平面的 y 轴坐标
    this.groundY = this.ground.y + this.ground.height/2;
    // 生成一个新的星星
    this.spawnNewStar();
},

spawnNewStar: function() {
    // 使用给定的模板在场景中生成一个新节点
    var newStar = cc.instantiate(this.starPrefab);
    // 将新增的节点添加到 Canvas 节点下面
    this.node.addChild(newStar);
    // 为星星设置一个随机位置
    newStar.setPosition(this.getNewStarPosition());
    newStar.getComponent('Star').game = this;
},

getNewStarPosition: function () {
    var randX = 0;
    // 根据地平面位置和主角跳跃高度,随机得到一个星星的 y 坐标
    var randY = this.groundY + cc.random0To1() * this.player.getComponent('Player').jumpHeight + 50;
    // 根据屏幕宽度,随机得到一个星星 x 坐标
    var maxX = this.node.width/2;
    randX = cc.randomMinus1To1() * maxX;
    // 返回星星坐标
    return cc.p(randX, randY);
}

// called every frame, uncomment this function to activate update callback
// update: function (dt) {

// },

});
`

Player.js
`cc.Class({
extends: cc.Component,

properties: {

    // 主角跳跃高度
    jumpHeight: 0,
    // 主角跳跃持续时间
    jumpDuration: 0,
    // 最大移动速度
    maxMoveSpeed: 0,
    // 加速度
    accel: 0,



},

setJumpAction: function () {
    // 跳跃上升
    var jumpUp = cc.moveBy(this.jumpDuration, cc.p(0, this.jumpHeight)).easing(cc.easeCubicActionOut());
    // 下落
    var jumpDown = cc.moveBy(this.jumpDuration, cc.p(0, -this.jumpHeight)).easing(cc.easeCubicActionIn());
    // 不断重复
    return cc.repeatForever(cc.sequence(jumpUp, jumpDown));
},

setInputControl: function () {
    var self = this;
    // 添加键盘事件监听
    cc.eventManager.addListener({
        event: cc.EventListener.KEYBOARD,
        // 有按键按下时,判断是否是我们指定的方向控制键,并设置向对应方向加速
        onKeyPressed: function(keyCode, event) {
            switch(keyCode) {
                case cc.KEY.a:
                    self.accLeft = true;
                    self.accRight = false;
                    break;
                case cc.KEY.d:
                    self.accLeft = false;
                    self.accRight = true;
                    break;
            }
        },
        // 松开按键时,停止向该方向的加速
        onKeyReleased: function(keyCode, event) {
            switch(keyCode) {
                case cc.KEY.a:
                    self.accLeft = false;
                    break;
                case cc.KEY.d:
                    self.accRight = false;
                    break;
            }
        }
    }, self.node);
},



// use this for initialization
onLoad: function () {
    // 初始化跳跃动作
    this.jumpAction = this.setJumpAction();
    this.node.runAction(this.jumpAction);

    // 加速度方向开关
    this.accLeft = false;
    this.accRight = false;
    // 主角当前水平方向速度
    this.xSpeed = 0;

    // 初始化键盘输入监听
    this.setInputControl();

},

// called every frame, uncomment this function to activate update callback
update: function (dt) {
    // 根据当前加速度方向每帧更新速度
    if (this.accLeft) {
        this.xSpeed -= this.accel * dt;
    } else if (this.accRight) {
        this.xSpeed += this.accel * dt;
    }
    // 限制主角的速度不能超过最大值
    if ( Math.abs(this.xSpeed) > this.maxMoveSpeed ) {
        // if speed reach limit, use max speed with current direction
        this.xSpeed = this.maxMoveSpeed * this.xSpeed / Math.abs(this.xSpeed);
    }

    // 根据当前速度更新主角的位置
    this.node.x += this.xSpeed * dt;
}

});
`

Star.js
`cc.Class({
extends: cc.Component,

properties: {
    pickRadius: 0
},

// use this for initialization
onLoad: function () {

},
getPlayerDistance: function () {
    // 根据 player 节点位置判断距离
    var playerPos = this.game.player.getPosition();
    // 根据两点位置计算两点之间距离
    var dist = cc.pDistance(this.node.position, playerPos);
    return dist;
},

onPicked: function() {
    // 当星星被收集时,调用 Game 脚本中的接口,生成一个新的星星
    this.game.spawnNewStar();
    // 然后销毁当前星星节点
    this.node.destroy();
},
update: function (dt) {
    // 每帧判断和主角之间的距离是否小于收集距离
    if (this.getPlayerDistance() < this.pickRadius) {
        // 调用收集行为
        this.onPicked();
        return;
    }
},

// called every frame, uncomment this function to activate update callback
// update: function (dt) {

// },

});
`

没有引用吧。。

按照教程上的,该引用的 都引用了的啊?
直到上一步
player 跳动,按键盘AD 控制player 左右加速移动,
以及 刷新生成 star 都是正常的
只是 到了碰撞 这一步 就坑了

代码没有问题呀

你把编辑器界面发上来看下

我也碰到了这个问题,没有任何报错,都是一步步按着官方教程来的,一到自动生成星星的位置,页面就一直在加载中。无法继续。
后来用浏览器的控制台,发现脚本无法找到player的跳高属性,统一了脚本和场景内的Player命名,就能正常加载了。

跟着教程一步一步来,是没问题的。