Quick-cocos2d-x3.3 Study (十二)--------- 创建一个圆形的物体并带有物理引擎效果

创建带物理效果的心心图片

先创建一个物理场景

1 local GameScene = class("GameScene", function (  )
2     -- body
3     -- return display.newScene("GameScene")
4     -- 创建一个带物理效果的场景
5     return display.newPhysicsScene("GameScene")
6 end)

在这个物理世界中添加物理心心

 1 -- 获取场景中绑定的物理世界对象
 2     self.world = self:getPhysicsWorld() ;
 3     -- 设置场景中的重力加速度
 4     self.world:setGravity( cc.p( 0, -98.0 ) ) ;
 5     -- 设置可以看见物理效果的调试状态
 6     self.world:setDebugDrawMask( cc.PhysicsWorld.DEBUGDRAW_ALL ) ;
 7
 8
 9     -- 创建一个心心,带物理特效的心心
10     self.heart = display.newSprite("image/pic/heart.png")
11     -- 设置心心的位置
12     self.heart:setPosition( display.cx, display.top - self.heart:getContentSize().height)
13     -- 将心心添加到场景中
14     self.heart:addTo(self)
15
16     -- 设置物体的密度、反弹力、摩擦力,
17     -- 将其都设置为 0 是为了在碰撞的时候不发生任何物理变化
18     local MATERIAL_DEFAULT = cc.PhysicsMaterial( 0.0, 0.0, 0.0 )
19     -- 1
20     local heartBody = cc.PhysicsBody:createCircle(
21         self.heart:getContentSize().width / 2, MATERIAL_DEFAULT
22     )
23     -- 为物体添加物理引擎
24     self.heart:setPhysicsBody( heartBody )
25     -- 屏蔽物理世界中的刚体收到重力的影响
26     -- self.heart:getPhysicsBody():setGravityEnable(false)

这里调用cc.PhysicsBody::createCircle()方法创建了一个圆形的 body;

createCircle(radius, material, offset),

createCircle方法有三个参数,分别是:

  • 参数1为 cc.size 类型,它表示圆形 body 的半径外大小。
  • 参数2为 cc.PhysicsMaterial 类型,表示物理材质的属性,
    • 默认情况下为 cc.PHYSICSBODY_MATERIAL_DEFAULT。

      •   该参数也可自定义,方法如下:
        cc.PhysicsMaterial(density, restitution, friction)
      •   density:表示密度
      •   restitution:表示反弹力
      •   friction:表示摩擦力
  • 参数3为 cc.p 类型,它也是一个可选参数,表示 body 与中心点的偏移量,默认下为cc.p(0,0)

第26行注释后的效果图

未注释的效果图

时间: 2024-10-06 01:15:01

Quick-cocos2d-x3.3 Study (十二)--------- 创建一个圆形的物体并带有物理引擎效果的相关文章

IntelliJ IDEA(三、各种工程的创建 -- 之二 -- 创建一个JavaWeb工程)

一.创建一个静态的JavaWeb工程 对于Java开发来说不会用到静态的JavaWeb项目,不用关注 创建完成后的项目结构: 二.创建一个动态的JavaWeb工程 创建完成后的项目结构: 三.对于二中创建项目后可能没有自动创建web文件夹的解决办法 (即没有自动创建 web.xml 及 index.jsp 文件) 1. 通过二中图二的Java Enterprise修改Java EE的版本为7后创建一次,再调回Java EE8即可正常创建(亲测有效) 2. 还可以通过IDEA编辑器中的File -

ROS学习随笔二(创建一个简单的ROS package)

本人在学习过程中,参见了如下几个博客及网站: ROS操作官网:http://wiki.ros.org/ROS/Tutorials 博客:http://blog.sina.com.cn/s/articlelist_1712413141_7_1.html 以及:http://blog.csdn.net/column/details/ros-explore.html 在创建package之前,需要先创建一个工作空间,本人安装的ROS版本是Fuerte. 1.Creating a ROS WorkSpa

Android开发本地及网络Mp3音乐播放器(十二)创建NetMusicListAdapter、SearchResult显示网络音乐列表

实现功能: 实现NetMusicListAdapter(网络音乐列表适配器) 实现SearchResult(搜索音乐对象) 使用Jsoup组件请求网络,并解析音乐数据,并,音乐数据加载到列表中 实现FooterView 截止到目前的源码下载: http://download.csdn.net/detail/iwanghang/9507635 Jsoup组件导入: AndroidStudio简单快速导入GitHub中的第三方组件 : http://blog.csdn.net/iwanghang/a

C#OOP之十二 创建多线程程序

线程简介 在讲线程之前,我们先来看几个概念,程序.进程. 程序:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合. 进程:进程通俗的讲,就是正在执行的程序.一个进程通常就是一个正在执行的应用程序.Windows提供了"任务管理器",如下图所示: 1教室.exe为海天屏幕广播程序的进程:飞球.exe为飞球的进程:sqlserver.exe为Sql Server2005的进程:当我们启动了一个应用程序(或者说一个任务)时通常也就启动了一个进程.从上图可以看出每一个进程占一

IOS 基础之 (二十二) 创建控制器

一 创建控制器 第1种方式 通过代码控制器 HKUIViewController.h #import <UIKit/UIKit.h> @interface HKUIViewController : UIViewController @end HKUIViewController.m #import "HKUIViewController.h" @implementation HKUIViewController @end AppDelegate.m - (BOOL)appl

micronaut 学习 二 创建一个简单的服务

micronaut 提供的cli 很方便,我们可以快速创建具有所需特性的应用,以下是一个简单的web server app 创建命令 mn create-app hello-world 效果 mn create-app hello-world | Generating Java project... | Application created at /Users/dalong/mylearning/micronaut-project/hello-world 启动服务 ./gradlew run

OD 实验(十二) - 对一个 Delphi 程序的逆向

程序: 运行程序 界面显示的是未注册 点击 Help -> About 点击 Use Reg Key 这里输入注册码 用 PEiD 看一下 该程序是用 Delphi 6.0 - 7.0 写的 逆向: 用 OD 打开程序 右键 -> 查找 -> 所有参考文本字串 然后右键 -> 查找文本 搜索 这里有个是 accepted 为接受,failed 为失败 双击 accepted 处 在 Delphi 中,push 后的 retn 指令相当于 jmp 指令 原文地址:https://ww

创建一个守护进程

一.概述:守护进程也称精灵进程(Daemon),是运行在后台的一种特殊进程.它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.守护进程是随系统启动而存在,随系统关闭而消失的进程(也就是开机之后就会存在,关机才消失).守护进程是一种很有用的进程,Linux的大多数服务器就是用守护进程实现的. 在终端运行命令:ps axj | head 参数a表示不仅列出当前用户进程,也列出所有其它用户进程. 参数x表示不仅列出有控制终端的进程,也列出所有无控制终端的进程. 参数j表示列出与作业控制

Cocos2d-x学习笔记(十五)--------&gt;物理引擎

物理引擎 Cocos2d-x引擎内置了两种物理引擎,它们分别是Box2D和Chipmunk,都是非常优秀的2D物理引擎,而且x引擎将它们都内置在SDK中.Box2D使用较为广泛,在这里选择Box2D来进行学习. 物理引擎模拟的内容: 重力:在游戏中模拟重力加速度,当游戏中人物跳跃起来后会受到重力影响而向下移动,在没有地面的场景,人物和物体会由于重力而做自由落体运动. 牵引力(动力):在游戏中比如汽车的引擎,人物本身能够提供向前进行的动力,这种牵引力是持续不断地作用在物体上的,物体因此可以向作用力