2016-07-18 09:02:46 Cleve_baby 阅读数 3566
  • 走入 Cocos Creator视频教程

    Cocos Creator游戏视频培训课程设计上,由一个简单的游戏,引入课程主体。先熟练开发流程,在熟练API,后熟练使用UI,理解碰撞和物理系统。循序渐进,课程中穿插很多小案例实践功能,压缩枯燥内容。

    1593 人正在学习 去看看 姜威

cc.Class({
  extends: cc.Component,

  properties: {
    target: {
      default: null,
      type: cc.Node,
    },
  },

  start: function (){
    var scene = cc.director.getScene();
    var node = cc.instantiate(this.target);

    node.parent = scene;
    node.setPosition(0,0);
  },
});

2019-02-25 18:36:22 magic_code_ 阅读数 1240
  • 走入 Cocos Creator视频教程

    Cocos Creator游戏视频培训课程设计上,由一个简单的游戏,引入课程主体。先熟练开发流程,在熟练API,后熟练使用UI,理解碰撞和物理系统。循序渐进,课程中穿插很多小案例实践功能,压缩枯燥内容。

    1593 人正在学习 去看看 姜威

学习(心态爆炸)历程:

关于2.0 shader的cgNode出错,可以看上篇blog,最前面的解决方案,是官方引擎组写的一个shader

[1] : Require(‘文件名’) 错误

// 正确写法,最开始的时候是直接写的module.export = cc.Class(...),这种我实验的时候是会出错的
// re_public.js
var re_public = cc.Class(
{
	pring:function()
	{
		cc.log('print');
	}
});
module.export = re_public;
// 调用时
var re_public = require('re_public');

[2] : 注意cc.v2,看一段代码

// 下面这段代码一直在报 ' 错误,x为空 ',起初我一直以为是x这个变量的问题
// 因为log打印的行号是最后一行,也就是那个 )} ,最后一行行的删,发现cc.v2没有x这个变量 ......,
// 我当时这个心情啊,以此铭记 如果要初始化,最好使用cc.vec2 这个有相应变量的,f12
cc.Class({
    extends:cc.Component,
    properties:{
        speed :0,
        offset : cc.v2
    },
    onLoad:function(){
        this.offset= cc.v2(this.node.width,this.node.height);
    },
    update : function(){
		var x = this.nodeSize.x;
		if(x > 50)
		{
			cc.log('print');
		}
	}
	)}

[3] : cc.loader.load(url,cc.SpriteFrame,function()) 出现错误

Uncaught ReferenceError: frame is not defined(我重现了一下,不过记得报的好像不是这个错)
start:function()
    {
        var self = this;
        cc.loader.load('https://profile.csdnimg.cn/5/D/7/1_magic_code_',function(err,texture)
        {
            if(err)
            {
                console.log('Image Load Failed! Url->','https://profile.csdnimg.cn/5/D/7/1_magic_code_',' Error Info->',err);
            }
            // 如果不写new SpriteFrame()这一句,而是直接xxx.spriteFrame = texture;就会出现上面那个错误,
            // 估计,应该是因为下载的数据为一个流格式,也就是Object,所以需要转一下数据
            // 下面是new SpriteFrame 跳转到的函数原型
            //constructor(filename?: string|Texture2D, rect?: Rect, rotated?: boolean, offset?: Vec2, originalSize?: Size);
            //let frame = new cc.SpriteFrame(texture);
            self.node.getComponent(cc.Sprite).spriteFrame = frame;
        });
    }

[4] : 继承

    遇到一个问题,我写了一个基类,然后import导入,继承之后在子类里面写update之后,
爆出了一个非常奇怪的BUG,Creator的报错机制大家都了解,我这里报错的位置是一个大括号。。。
???非常奇怪,于是一行行的删除,之后定位到是update(dt)这个位置,反复检查之后,发现根本没有任何问题,
因为父类里面的代码是经过单独测试的,而子类里面除了有方法,其他的实现都被删除了,然而还是会报错
当时就在想,JS里面到底有没有重写或是base.XXX()这种写法,
    测试,删除了父类的Update函数,编译运行,无异常。。。???,骚啊,还有这种操作,这种报错
不一行行删除谁能想的到啊。。。但是此时又出现了一个问题,我父类需要使用update实现一些方法,子类同样要有扩展方
法,但是update又不能同时出现在两个类里面,这种实现如果是放在C#里面,我们的第一想法肯定是delegate,但是JS里面
根本没有这种东西(没搜到)呀,绞尽脑汁,突然想起来官网文档里面好像有一些东西可以帮助我去实现这种写法
/// 父类实现,假设父类js文件名为PersonBase.js
cc.Class({
	extends:cc.Component,
	properties:
	{
		m_OnUpdate:[],		//  如果子类需要用到update则添加str到本数组中
		m_IsStartMonitor:0
	},
	Initial:function(){
		this.m_OnUpdate = [];
		this.m_OnUpdate.push('ParentUpdate');
		this.node.on('ParentUpdate',function(dt)
		{
			console.log('父类Update , DeltaTimer -> ' + dt);
		});
	},
	update:function()
	{
		if(this.m_IsStartMonitor  != 0)
		{
			for(var i = 0;i < his.m_OnUpdate.length;i++)
			{
				this.node.emit(this.m_OnUpdate[i],dt);
			}
		}
	}
});
---------------------------------------------------------------------------------------------
/// 子类实现
import PersonBase from 'PersonBase'
cc.Class({
	extends:PersonBase,
	//properties:{}
	start:function()
	{
		this.Initial();
		this.m_OnUpdate.push('ChildUpdate');
		this.node.on('ChildUpdate',function(dt){
			cc.log('子类Update , DeltaTimer -> ' + dt);
		});
		this.m_IsStartMonitor = 1; // 开启监听
	},
});

[5] 数组 字典的删除

	在C#,一般我们希望删除某个元素的时候,都会直接调用Remove(i or key)这个方法,但是js里面的所有变量都是
Object,姑且不提有没有这个方法,就算有,我们在删除的时候也有很大可能因为object类型出现一些错误,
那么能不能直接 == null,我实验了一下,这个方法是可以使用的,但是如果你  for(key in dict) 时,对应元素索引
的位置会是一个undenfined,如果我们采用这种的话,那么假设,我们需要不断的去更新一个数组里面的一些数据,
那么伴随着游戏的运行,这个里面占用的内存也会越来越大,这显然不是我们所希望的,
	话说,我们上面用到了push,那么应该也有一个对应的pop啊,对,没错,但是pop是弹出最后一个元素,而我们希望的是
我们去判断删除哪一个元素,而不是全看运气,联想一下,push pop都有了,那么对应的一些其他元素也有可能出现,比如
delete。。。
	嗯~~,删除也有,但是在删除数组时是直接把数组的对应索引归空(蛮正常),只有在删除字典的key值时才会把
对应元素删除
/// 字典删除,数组不归空直接更新的话,估计是要自己写,但是涉及到大量的数据更新,手动更新肯定是不科学的
/// 所以这里用的是字典
cc.Class({
    extends:cc.Component,
    properties:{
        m_EnentDict:[], 
    },
    
    start: function () {
        this.SetPosi(cc.v2(-200, 0));
        this.m_EnentDict= {
            1:'1',
            2:'2',
            3:'3',
            4:'6',
            5:'12'
        };

        this.m_EnentDict[6] = '63';
        for (var i in this.m_EnentDict) {
            cc.log(this.m_EnentDict[i]);
        }
        delete this.m_EnentDict[3];
        for (var i in this.m_EnentDict) {
            cc.log(this.m_EnentDict[i]);
        }
        /// 最终迭代次数和我们预想的一致,而不是顺带把null,underfined一起输出
    },
});

。。。日后遇到在加吧

2018-12-15 18:29:59 qq_34171368 阅读数 901
  • 走入 Cocos Creator视频教程

    Cocos Creator游戏视频培训课程设计上,由一个简单的游戏,引入课程主体。先熟练开发流程,在熟练API,后熟练使用UI,理解碰撞和物理系统。循序渐进,课程中穿插很多小案例实践功能,压缩枯燥内容。

    1593 人正在学习 去看看 姜威

1.下载node.js在这里插入图片描述选择自己电脑匹配的版本。

检测安装成功没
在这里插入图片描述

然后安装express
在这里插入图片描述

检测安装在这里插入图片描述

然后安装 ws(WebStorm),新建项目
在这里插入图片描述

输入命令安装依赖库
在这里插入图片描述

输入命令下载依赖包
在这里插入图片描述
在项目路径会出现一个依赖包
在这里插入图片描述

输入命令打开本地服务器
在这里插入图片描述

进入 cocos creator 发布好的路径
在这里插入图片描述

拷贝然后把cocos 发布的web包放在pubilc下面 就可以 本地预览了
在这里插入图片描述

刚才我们只是本地服务器 只能自己看 接下来 也让别人看到

首先 登入云服务器(这是新浪)
在这里插入图片描述

然后点击产品
在这里插入图片描述

选择node.js
在这里插入图片描述

填上域名
在这里插入图片描述

然后云服务器会给你一个git地址
在这里插入图片描述

然后下载Sourcetree软件,进入
在这里插入图片描述

然后会在你选择的本地路径出现git文件
在这里插入图片描述

然后 进之前本地服务器复制这些文件

粘贴到刚刚git哪里
在这里插入图片描述

然后 提交
在这里插入图片描述

推送
在这里插入图片描述

推送成功
在这里插入图片描述

然后就可以通过之前定义的域名访问了
在这里插入图片描述

2018-03-19 07:13:53 weixin_34249678 阅读数 139
  • 走入 Cocos Creator视频教程

    Cocos Creator游戏视频培训课程设计上,由一个简单的游戏,引入课程主体。先熟练开发流程,在熟练API,后熟练使用UI,理解碰撞和物理系统。循序渐进,课程中穿插很多小案例实践功能,压缩枯燥内容。

    1593 人正在学习 去看看 姜威

Cocos Creator支持导出当前项目中的场景和预制为另一个项目所用:
1,选择要导出的场景或者预制;
2,选择要导出到的目标文件夹位置并进行可能的重新命名;
3,导出一个压缩文件.zip。
4,解压压缩文件.zip,然后可以拖动其中的内容到目标项目指定位置进行使用即可。

但是也有一些小问题:
1,目标项目中的各种资源一般都已经规划名称和层次了,很可能上面拖动时需要分门别类地拖动各个资源文件(包括脚本文件)到新的相应的文件夹位置;
2,根据需要,很可能进行必要的重命名——这个有些麻烦,有可能导致系统中的某些资源引用命名错误。
【特别提示】使用Creator要慎重命名,一旦确定,尽量不要再改来改去。
3,自然,导入后,节点对脚本的对应引用必须进行重新引用。

上述情况,我感觉也没有太好的办法可简化(从而尽量避免修改,并轻松地导出到当前项目中),这是由Cocos Creator的组件化组件设计所决定的。小面只是初步总结,以后还会继续探讨其他操作技巧简化导出后的重用——这是项目开发中必须面对的问题!

2019-04-06 11:18:57 y505772146 阅读数 474
  • 走入 Cocos Creator视频教程

    Cocos Creator游戏视频培训课程设计上,由一个简单的游戏,引入课程主体。先熟练开发流程,在熟练API,后熟练使用UI,理解碰撞和物理系统。循序渐进,课程中穿插很多小案例实践功能,压缩枯燥内容。

    1593 人正在学习 去看看 姜威

最近在捣鼓Cocos Creator,发现一直在安装过程中提示“disk1.cab没有正确的数字签名”。经过排查,我发现我的问题主要是由于我的设备是内网机导致的。(内网机真是神坑啊,很多奇奇怪怪的问题都会出现)
解决方法是:找到一台安装成功的电脑,直接拷贝到内网机上即可。
专门在此记录一下,以备自己查阅。这种方法是一定可以成功的,所以希望可以对朋友们有所帮助。

没有更多推荐了,返回首页