cocos-js
文章平均质量分 63
土豆丝的逆袭
如果此时此刻的你感到焦虑、恐慌、不安,说明你的内心还不够强大
展开
-
cocos-js,时间相关的处理
原因客户端在成功登陆后会从服务器收到一个登陆时间,然后开始让时间走起来,现在有两种走法:1.单起一个全局定时器,每一次update后让秒数+1,但是这种走法在游戏切换到后台后,定时器被挂起,时间就停止了,当游戏再从后台切换到前台后,就会不准,还有当定时器加速或者减速的时候,时间也会不准 2.用服务器时间和本地时间对比,获取时间差,以后再需要用时间的时候,获取到本地时间+时间差,就是正确的服务器时间原创 2016-05-06 20:34:28 · 2762 阅读 · 0 评论 -
creator+express实现http通信
1.服务端代码var express = require('express')var app = express()var bodyParser = require('body-parser');// 建立一个需要在同步作用域中执行的函数var fibers = require('fibers');// 创建 application/x-www-form-urlencoded 编码...原创 2018-12-21 15:02:18 · 278 阅读 · 0 评论 -
creator入门
一、类的构造cc.Class == 类型声明 var Sprite = cc.Class({ name: "sprite" });实例化,var obj = new Sprite();判断实例,obj instanceof Sprite判断两个类的继承关系,cc.isChildClassOf(child, parent)构造函数, var S...原创 2018-12-14 12:03:08 · 386 阅读 · 0 评论 -
设计模式之观察者2
COCOS2D-X中的观察者在cocos2d-x中被观察者是NotificationCenter,但它不是通过自身状态改变来通知观察者,而是通过显示地发送观察者感兴趣的消息(postNotification)来通知它们。每一种消息类型可以对应多个观察者,同时,每一个观察者也可以“观察”多个消息类型。其次,观察者定义相应的响应事件同消息类型关联,当某个地方触发postNotificati...原创 2014-12-17 00:10:19 · 673 阅读 · 0 评论 -
设计模式之观察者1
什么是观察者一个目标对象可以注册多个观察者,当目标对象的状态改变的时候,可以通知观察者对象作出相应的响应。这是标准的观察者模式的实现。 观察者模式又称为发布-订阅模式。优缺点优点:- 实现了目标对象和观察者之间的抽象耦合,在本例中,则是实现了消息与观察者的抽象耦合。可以定义一种消息与消息处理对象的一对多的关系,而不用担心彼此的实现细节。缺点:- 如果一个被观察者对象有很多的直接...原创 2014-12-12 00:55:54 · 794 阅读 · 0 评论 -
cocos-js,过滤无用资源
一、制作背景公司项目最近在过滤一些无用的老资源,如果一个一个找太费时费力,于是乎想做一个工具,对资源目录下的资源名称在代码里遍历寻找,如果没有找到,就认为这是一个无用的老资源。这样能做一个大致的筛选,对于组合的资源名称无法做到筛选,还需要自己再次做出判断。二、实例代码#!/usr/bin/env python# -*- coding: utf-8 -*-import osimp...原创 2018-10-31 18:20:39 · 521 阅读 · 0 评论 -
cocos-shader---3.实例上手
一、使用内置shader使用内置 shader 非常简单,直接通过一个 key 值从 GLProgramCache 缓冲区取到一个 GLProgram,然后设置给 Node 即可; 默认 shader 的 key 值在 GLProgram 中定义 auto sprite = Sprite::create("colormap.jpg");sprite->setPosition(v...转载 2018-08-12 22:01:08 · 749 阅读 · 0 评论 -
cocos-shader---2.源码解析
一、shader相关源码cocos2d-x 与 shader 相关的代码在 renderer 目录下 |-cocos |-renderer |-CCGLProgram.h |-CCGLProgram.cpp |-CCGLProgramCache.h |-CCGLProgramCache.cpp |-C...转载 2018-08-12 17:07:33 · 586 阅读 · 0 评论 -
cocos-js,数据本地存储
一、前言在cocos-js 3.0以上的版本中,当我们用到本地存储的时候,发现以前用到的UserDefault在JS中并没有导出,而是换成了LocalStorage。二、基本使用/** Initializes the database. If path is null, it will create an in-memory DB. */void CC_DLL localStorageInit(原创 2016-06-22 15:17:30 · 4812 阅读 · 0 评论 -
cocos-js,屏幕适配
一、基础概念五种适配模式: EXACT_FIT:会靠拉伸来填满屏幕,背景图会变形来充满屏幕,因为1024:768=1.3, 480:320=1.5,宽高比不同,图片也就无法等比缩放来填满屏幕,只能变形了。NO_BORDER:看不到黑边,实际就是宽高等比缩放,但缩放比例取宽比和高比中大的那一个SHOW_ALL:全部显示,可以理解为保证内容都显示在屏幕之内,实际也是宽高等比缩放,但缩放比例取宽比原创 2016-06-12 15:10:19 · 1524 阅读 · 0 评论 -
cocos-js,内存管理3---查看器
一、纹理缓存(TextureCache)纹理缓存是将纹理缓存起来方便之后的绘制工作。每一个缓存的图像的大小,颜色和区域范围都是可以被修改的。这些信息都是存储在内存中的,不用在每一次绘制的时候都发送给GPU。首先,我们创建一个精灵Sprite* Sprite::create(const std::string& filename){ Sprite *sprite = new (std::no原创 2016-07-05 16:12:51 · 1179 阅读 · 0 评论 -
cocos-js,内存管理2---计算图片占用内存
一.1张图片内存如何计算一张图片占用的内存由以下两个因素决定: 图片的像素点个数单位像素占用的字节数其中图片的像素点个数是图片的宽度与长度的积,所以一张图片占用的内存值为:图片长度 * 图片宽度 * 单位像素占用的字节数单位像素所占用的字节数与图片的解码方式有关。 默认情况下,在cocos里加载一张图片,每一个像素点使用4个byte来表示1个byte(8位)代表red,另外3个b原创 2016-07-03 20:39:55 · 4439 阅读 · 0 评论 -
cocos-js,内存管理1---引用计数方式
一.开篇引题在理解cocos2dx的内存管理机制之前,我们可以先了解下c++中变量的内存空间的分配问题. 我们在c++中写一个类,可以在栈上分配内存空间也可以使用new在堆上分配内存空间,如果类对象是在栈上分配的内存空间,这个内存空间的管理就不是我们的事了,但如果是在堆上分配的内存空间,当然需要我们来手动的delete了!问题来了,cocos2dx如何管理内存: cocos2dx采用原创 2016-06-30 11:26:00 · 2820 阅读 · 1 评论 -
cocos-js,clippingNode的使用(1)
2016年5月11日下午2:14一.基本定义 ClippingNode(裁剪节点)可以用来对节点进行裁剪,可以根据一个模板切割图片的节点,生成任何形状的节点显示。ClippingNode是利用模板遮罩来完成对Node区域裁剪的技术。 原理图: 二.上手实例游戏中,新手引导算是一个比较重要的部分,指引玩家一步步了解游戏,深入游戏,作用相当于老司机啊,告原创 2016-05-11 18:43:39 · 2274 阅读 · 0 评论 -
cocos-js,错误输出台
一、为什么要做这么一个错误输出台?事发起因: 策划A:今天晚上要出个热更包,明天10点热更一下,小改点东西,应该没什么大问题。 程序A:ok,马上。 【大约10分钟后】 程序A:我X,不行啊,报错了! 策划A:能查看一下错误日志吗? 程序A:这个游戏包是IOS很早就打出来的包,貌似并不能查看错误日志。 程序B:手动排查吧 【晚上12点后】 程序A原创 2016-05-16 12:16:08 · 2326 阅读 · 0 评论 -
cocos-js,Widget的addTouchEventListener改善
一、基本使用addTouchEventListener是属于Widget下的触摸事件相关的操作,基本使用规则如下:var button = new ccui.Button()button.addTouchEventListener(this.touchEvent, this)touchEvent: function (sender, type) { switch (type) {原创 2016-05-30 13:43:49 · 5574 阅读 · 0 评论 -
cocos-shader---1.了解
一、着色器语言先看一段代码:attribute vec4 a_position;attribute vec4 a_color;varying vec4 v_fragmentColor;void main(){ gl_Position = CC_MVPMatrix * a_position; v_fragmentColor = a_color;}再来解释这...转载 2018-08-12 00:05:09 · 1227 阅读 · 0 评论