7.ts  跳转场景

director.loadScene("game");

8  ts--在ts文件声明变量时,前面加上注解   @property,此变量量就可以在cocos creator编辑器里面修改

9  ts  将v2坐标转v3坐标

 let locaton:Vec2= event.getLocation();//触摸事件 返回的坐标是世界坐标的位置this.curPos=v3(locaton.x,locaton.y,0);//将当前设置为手指或者鼠标

10  点击事件返回的坐标是世界坐标的位置,而小飞机是canvas的子节点  ,

this.node.setPosition(this.curPos);

上面代码设置的是相对于canvas的坐标

this.node.parent.getComponent(UITransform).convertToNodeSpaceAR(v3(locaton.x,locaton.y,0));

this.node.parent:获取到局部的canvas节点

.getComponent(UITransform) :获取到UITransform组件下的convertToNodeSpaceAR属性

将v2坐标转为v3坐标

11.了解常驻界面的概念常驻节点介绍

12节点池

NodePool

13 find方法

获取节点

this.presistNode=find("PresistNode");;

获取节点的属性

this.presistNode.getComponent(PresistNode).

【presistNode为节点对象】【PresistNode为presistNode节点绑定的ts脚本】

14播放动画

15  绑定普通的碰撞监听

 let collider:Collider2D=this.getComponent(Collider2D);if(collider){collider.on(Contact2DType.BEGIN_CONTACT,this.onBeginConcat,this)}
 onBeginConcat(selt:Collider2D,other:Collider2D,contact:IPhysics2DContact|null){}

other参数 是被碰撞的节点

other.node  就可以获得被碰撞的node

other.getComponent(绑定的js)//可以获取被绑定的js

other.node.getChildByName("节点名称")//可以获得被碰撞的节点

16播放音效

先引入AudioSource组件

声明AudioClip类型,引入音效

@property(AudioClip)gameBackMusic:AudioClip=null;//集中敌机音效

播放音乐

this.node.getComponent(AudioSource).playOneShot(this.gameBackMusic);

17 将节点添加到Canvas节点上去

 find("Canvas").addChild
let anim=this.presistNode.getComponent(PresistNode).animFactory.createAnim();anim.setPosition(this.node.getPosition())find("Canvas").addChild(anim);anim.getComponent(Animation).play();

anim.getComponent(Animation).play()//Animation  需要收到导入,将 Animation复制到上面cc的位置,play方法  播放动画

动画节点自动删除

第一个箭头添加帧事件

然后填写贞事件名字,再事件方法里面清楚节点

18绑定键盘输入事件

  input.on(Input.EventType.KEY_DOWN, this.onKeyDown, this);
 onKeyDown(event: EventKeyboard) {console.log(event)switch (event.keyCode) {case KeyCode.KEY_W:console.log('上');break;case KeyCode.KEY_S:console.log('下');break;case KeyCode.KEY_A:console.log('左');break;case KeyCode.KEY_D:console.log('右');break;}}

19刚体问题

现在一个单色节点,然后在节点上添加刚体组件,这样的话  滚动的地面就可以用坐标了

20 Ts    加载网络图片

@property({ type: Sprite })spritee: null;assetManager.loadRemote(url,{ext : '.png'}, (err,asset : ImageAsset)=>{if(err) {console.log(err);}else {console.log('头像下载成功');that.spritee.spriteFrame = SpriteFrame.createWithImage(asset);            }});

21  引入微信API

项目根目录执行

npm i -S weixin-js-sdk
const wx = window['wx'];//避开ts语法检测然后
wx.api方法名就行

22scrollview对象获取滑动的位置

scrollview.getScrollOffset();

23获取scrollview的content节点以及他的UI节点

 var conUi=this.scrollview.getChildByName("view").getChildByPath("content").getComponent(UITransform)
console.log("content的高度",conUi,conUi.height);

24  ts1文件 挂在预制体1上    ts2文件挂在另一个预制体2上

预制体2动态添加到预制体1上面的    预制体2的点击事件想通知预制体1

第一步 在ts1文件声明变量(guanfaFab    ts1文件名)

public static ins: guanfaFab = null;

在ts1文件上start方法里  复制this上下文

start() {guanfaFab.ins = this}

第二  在ts2文件去引用

import { guanfaFab } from './guanfaFab';

btnclick就是ts1文件里的一个方法明

guanfaFab.ins.btnclick(res,this.numNow);

25序列动画

tween(this.node).delay(num_delayRandom).to(num_toRandom,{scale:new Vec3(1,1,1)}).to(num_toRandom,{scale:new Vec3(0.3,0.3,0.3)}).union() .repeatForever().start()//节点

26大摆锤动画(this.dabaichuiImg这是一个精灵节点)

tween(this.dabaichuiImg.node).to(2,{angle:-70}).to(2,{angle:70}).union() .repeatForever().start()

27首先点击隐藏的节点用代码显示出来(toukuiK是一个精灵节点)

toukuiK.node.active=true;

28世界坐标转换

1.得到目标节点A的世界坐标 getposition

2.将A的世界坐标转成B的父节点的AR converToNodeSpaceAR

3.用AR的返回值设B的位置setposition

v3_position  是预制体自己的坐标

this.node.getComponent(UITransform)  获取预制体的  组件

v3_position_word  获取的世界坐标

  let v3_position_word=this.node.getComponent(UITransform).convertToWorldSpaceAR(v3_position);

29获取重力加速度

PhysicsSystem2D.instance.gravity

29修改重力加速度(反重力所有有个负号)

PhysicsSystem2D.instance.gravity=new Vec2(gravity.x,-gravity.y);

30获取Collider2D组件  监听碰撞

// let collider=this.getComponent(Collider2D);// collider?.on(Contact2DType.BEGIN_CONTACT,()=>{//     this.can_jum=true;// },this);

31获取Collider2D多个组件  监听多个碰撞,使用tag区分

let colliders=this.getComponents(Collider2D);for(let collider of colliders){// /如果是底下那个Collider2D触到地面的话  就可以再次跳跃if(collider.tag==1||collider.tag==2){let gravity=PhysicsSystem2D.instance.gravity;//获取重力collider?.on(Contact2DType.BEGIN_CONTACT,()=>{console.log(collider.tag,PhysicsSystem2D.instance.gravity);if(collider.tag==1&&Math.sign(gravity.y)>0){return false;}else if(collider.tag==2&&Math.sign(gravity.y)<0){return false;}this.can_jum=true;},this);}}

32  这个sensor  只监听碰撞无实际碰撞效果

33.初始化之后修改刚体大小  这个节点上挂了BoxCollider2D组件,碰撞之后修改他的碰撞范围宽高(碰撞体碰撞后,只有延迟半秒或者几百毫秒之后才能修改他的位置,或者销毁或者碰撞体大小)

  var bc= this.bottonXian.getComponent(BoxCollider2D);bc.size=new Size(10,10);bc.apply();}

34  节点顺时针旋转(这是Node节点)

angle:number;update(deltaTime: number) {this.angle=this.angle+1;if(this.angle>=360){this.angle=0;}this.bottonXian11.angle= -this.angle;}

35触摸随之移动

更改触摸改变的x和y的变量,没有进行世界坐标的转换

// 鼠标按下时候触发this.node.on(Node.EventType.TOUCH_START  , (event) => {console.log('当手指触点落在目标节点区域内时');}, this);//   松开时候this.node.on(Node.EventType.TOUCH_MOVE   , (event) => {let delta=event.getDelta();var pos=this.node.getPosition();pos.x=pos.x+delta.x;pos.y=pos.y+delta.y;this.node.setPosition(pos);}, this);

36  接收多个同类型的节点Ts

@property({type:[Label]})numLabel = []

37两个同是静态的刚体  不会触发碰撞监听,如果想要手动拖动刚体与另一个静态的刚体监听碰撞

可以将手拖动的刚体改成动态的,然后重力改成0就行了

37.获取屏幕的实际宽高

view.getVisibleSize()

38.修改节点位移

 bgView.position=v3(20,20,0);

39缓存数据到本地

  1. cc.sys.localStorage.setItem('help', '999999999999999'); //存储数据

Cocos creator 学习笔记(2)相关推荐

  1. cocos creator学习(七)音乐

    目录 背景音乐 使用AudioSource组件 ①添加组件 ②脚本控制 直接脚本控制 ①声明 ②播放背景音乐(playMusic) 音效 直接脚本控制 ①声明 ②播放 ③停止 注意 背景音乐 使用Au ...

  2. Cocos Studio学习笔记实战第一篇-我们山寨一个那年那兔那些事(看效果)

    学习了Cocos Studio大概一周,正赶上十一长假,于是乎想利用刚刚学习的东西巩固一下这几天的学习成果,9月份一直在玩手游<那年那兔那些事>,所以图方便,就把那年那兔那些事的apk报解 ...

  3. Cocos Creator学习目录

    目录 安装和启动 文件结构 编辑器基础 基本概念 (场景树 节点 坐标 组件 ) Cocos Creator 脚本简介 Cocos Creator调试 节点 cc.Node 组件开发cc.Compon ...

  4. [经验] Cocos Creator使用笔记 --- 调用不同脚本下的函数

    因为 JavaScript 不同于 Java, 想要调用不同文件的函数的话不能直接 ClassName object = new ClassName(); object.function(param) ...

  5. cocos creator 学习随笔 day03 节点和组件属性

    目录 节点本身属性 控件属性 场景 空节点 3D对象 2D对象 UI组件 光线 特效 摄像机 地形 节点本身属性 第一栏为节点名,可修改,前面得勾,是表示是否使用该节点,去掉代表隐藏该节点,但是该节点 ...

  6. cocos creator学习(十四) websocket、onfire

    1.使用websocket替换原本无法在原生平台使用的socket. 2.事件分发开源库onfire的使用 3.一些注意事项 1.使用websocket替换原本无法在原生平台使用的socket. 其实 ...

  7. cocos creator 学习第一篇

    文章目录 游戏引擎: cocos2d cocos creator 版本: 编辑器 游戏引擎: unity 编程语言主要为c# 早期cocos2d 等用c++ 或者lua cocos creator 编 ...

  8. cocos creator学习个人踩坑(3)--关于项目调试在一些安卓机上FPS低

    一些cocos creator遇到的小问题 问题 在做点消游戏项目的时候,在一些旧的安卓机上测试时消除特效显示会有明显的卡顿,火箭消除会有残留,FPS下降明显 原因 通过真机调试,发现日志输出会明显导 ...

  9. Cocos Creator 入门笔记

    推荐文档https://www.tslang.cn/docs/home.html 文章目录 (一).从装机箱谈到面向对象再到游戏引擎 (二).Cocos发展史 (三).编程语言 环境: 语言区别: 开 ...

最新文章

  1. python领域有什么用-Python都能应用到哪些领域?具体就业职位有什么?
  2. 【Python学习系列二十二】pandas数据筛选和排序
  3. zemax 宏怎么编写数组_编写Excel VBA程序的10个技巧
  4. cpci检索为什么那么慢_索引原理与慢查询优化
  5. boost::histogram模块实现自定义二维轴的测试程序
  6. 第1章 计算机基础知识习题答案,职称计算机基础知识习题第一章
  7. spring使用自定义注解_用Spring组成自定义注释
  8. 任正非:要提高待遇,敢于和美国争夺人才
  9. 设计模式 -- 结构模式
  10. OKR与互联网创业团队
  11. 翻译:protocol的高阶用法,在Swift 5中使用协议protocol构建自定义集合Collection
  12. 排版怎么排?八大技巧提升版面设计感
  13. SU插件|实时联动Lumion LiveSync for SketchUp免费下载(渲染器与草图大师模型同步更新)
  14. 若程序员们的“反996协议”实行,会发生什么
  15. 苹果将在圣诞节期间停止App Store审核:因为休假
  16. win7计算机硬盘加密码,win7系统怎么加密电脑硬盘 win7系统加密电脑硬盘的快速操作方法...
  17. 携程Java后台开发三面面经
  18. 我为什么鼓励工程师写 blog?
  19. 网页自动采集之内涵吧内涵段子自动采集
  20. 在VB6中生成随机数

热门文章

  1. 【讨论】读博最多收入的高校是哪个?中国高校硕博补贴大盘点!
  2. 第三章-分支程序设计代码实例(C++蓝豹子)
  3. MacOSX 编译Android 4.0的各种问题
  4. 【Carsim学习】Carsim2019安装教程
  5. Oracle数据库基础(还在学java吗?不如来看看oracle)
  6. Android OOBE开发
  7. 圆弧防线用计算机怎么算,一种圆弧形放线工具的制作方法
  8. linux安装红帽openshift,Redhat Openshift 单机版安装指南 CRC4.6
  9. 华为云分布式数据库中间件DDM
  10. 泉州php编程学校,泉州五中校园网络平台【Moodle平台与校园网络整合】...