前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KUOKUO的趣味教程 | 进击的小怪诞生(1)

KUOKUO的趣味教程 | 进击的小怪诞生(1)

作者头像
张晓衡
发布2019-09-11 18:10:38
3490
发布2019-09-11 18:10:38
举报

EEA阔宝:专注 CocosCreator 引擎小游戏开发两年

开发微信小游戏5款

H5 小游戏多款

CSDN 博客: KUOKUO 众享


第一章:进击的小怪诞生

这,本该是一片虚无之地,却有一个 960*640 的神秘领域降临(Canvas)... 这,本该是一块荒凉之所,却有一个玩家凭空产生(player节点)...

咦!!!冥冥之中,好似有一股神秘的力量操纵着玩家,player节点上绑定player-control脚本:

代码语言:javascript
复制
cc.Class({
    extends: cc.Component,

    properties: {
        speed : 100
    },

    onLoad () {
        // 声明上下左右开关
        this.up    = false;
        this.down  = false;
        this.left  = false;
        this.right = false;
        // 键盘事件,w s a d 上下左右
        cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);
        cc.systemEvent.on(cc.SystemEvent.EventType.KEY_UP, this.onKeyUp, this);
    },

    /**
     * 按下键盘事件
     */
    onKeyDown (event) {
        switch(event.keyCode) {
            case cc.macro.KEY.w:
                this.up = true;
                break;
            case cc.macro.KEY.s:
                this.down = true;
                break;
            case cc.macro.KEY.a:
                this.left = true;
                break;
            case cc.macro.KEY.d:
                this.right = true;
                break;
        }
    },

    /**
     * 键盘抬起事件
     */
    onKeyUp (event) {
        switch(event.keyCode) {
            case cc.macro.KEY.w:
                this.up = false;
                break;
            case cc.macro.KEY.s:
                this.down = false;
                break;
            case cc.macro.KEY.a:
                this.left = false;
                break;
            case cc.macro.KEY.d:
                this.right = false;
                break;
        }
    },

    update (dt) {
        if (this.up) {
            this.node.y  += this.speed * dt;
        }
        if (this.down) {
            this.node.y  -= this.speed * dt;
        }
        if (this.left) {
            this.node.x  -= this.speed * dt;
        }
        if (this.right) {
            this.node.x  += this.speed * dt;
        }
    }
});

尝试按下W、S、A、D这向个键,玩家居然动起来了,真是神奇... ...

突然!!!

虚空中喷薄而出的能量席卷了这个领域,玩家身上的所有装备被损坏,失去了攻击力,而与此同时,一个奇怪的东西乱入了进来...

我 KUOKUO!一个小怪,诞生啦!虽然我只是一个小方块,不知如何攻击,甚至没有血量,但是我有一个信念:到达玩家位置,打他!!!

怎么打?不知道!先到达玩家位置再说!

我,下图中的me节点,诞生在了地图左上角 ...

啊,头好疼,穿越到游戏里面来了!我每秒钟好像只能思考 1 次,速度为80迈!

看我的脚本(me),我是小怪!

代码语言:javascript
复制
cc.Class({
    extends: cc.Component,

    properties: {
        thinkCD : 1,
        speed : 80,
        // 玩家
        player : cc.Node
    },

    onLoad () {
        this.vector = cc.v2(0,0);
    },

    update (dt) {
        // 1 秒 1 次
        this.thinkCD -= dt;
        if (this.thinkCD <= 0) {
            this.thinkCD = 1;
            // 向量减法,计算方向向量
            this.vector = this.player.position.sub(this.node.position);
        }
        this.walkTo(this.vector, dt);
    },

    walkTo (v, dt) {
        // 归一化向量
        v.normalizeSelf();
        this.node.x += this.speed * dt * v.x;
        this.node.y += this.speed * dt * v.y;
    }
});

我:玩家别跑! 玩家:啊....W、A、S、D... O(∩_∩)O~~

未完待续...


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Creator星球游戏开发社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一章:进击的小怪诞生
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档