C#学习日志 day9 -------------- cocos2d-x 3.0 粒子效果简介

  cocos2d是一款实用的游戏引擎,其可以在windows phone中应用,但是比较差强人意的是其代码只能用c++来写。

因为我们的wp应用我负责粒子效果的实现,所以这里我介绍一下各种粒子效果。

  cocos2d中自带了十种粒子效果。可以说,一般的效果我们都可以用cocos2d自带的粒子效果实现。即使不能我们也可以通过对其自带粒子效果进行一些属性的调整从而实现我们想要的效果。

  这里先贴出十种粒子效果的实现代码

 ParticleRain *snow = ParticleRain::create();//雨的效果
    snow->setPosition(Point(400, 300));
    snow->setTextureWithRect(Director::getInstance()->getTextureCache()->addImage("black.png"), Rect(0, 0, 10, 10));
    this->addChild(snow);
    ParticleExplosion *exp = ParticleExplosion::create();//爆炸效果
    exp->setPosition(Point(300, 300));
    exp->setTextureWithRect(Director::getInstance()->getTextureCache()->addImage("yellow.png"), Rect(0, 0, 10, 10));
    this->addChild(exp);
    ParticleFire *fire = ParticleFire::create();//火焰效果
    fire->setPosition(Point(200, 300));
    fire->setTextureWithRect(Director::getInstance()->getTextureCache()->addImage("yellow.png"), Rect(0, 0, 10, 10));
    this->addChild(fire);
    ParticleSun *sun = ParticleSun::create();//太阳效果。火焰效果的重力设置为0就是了
    sun->setPosition(Point(100, 300));
    sun->setTextureWithRect(Director::getInstance()->getTextureCache()->addImage("yellow.png"), Rect(0, 0, 10, 10));
    this->addChild(sun);
    ParticleGalaxy *ga = ParticleGalaxy::create();//星系效果,
    ga->setPosition(Point(500, 300));
    ga->setTextureWithRect(Director::getInstance()->getTextureCache()->addImage("yellow.png"), Rect(0, 0, 10, 10));
    this->addChild(ga);
    ParticleSmoke *sm = ParticleSmoke::create();//烟的效果,速度比火焰慢
    sm->setPosition(Point(600, 300));
    sm->setTextureWithRect(Director::getInstance()->getTextureCache()->addImage("yellow.png"), Rect(0, 0, 10, 10));
    this->addChild(sm);
    ParticleMeteor *pm = ParticleMeteor::create();//流行效果
    pm->setPosition(Point(100, 200));
    pm->setTextureWithRect(Director::getInstance()->getTextureCache()->addImage("yellow.png"), Rect(0, 0, 10, 10));
    this->addChild(pm);
    ParticleFlower *pb = ParticleFlower::create();//花的效果,个人感觉特别乱
    pb->setPosition(Point(200, 200));
    pb->setTextureWithRect(Director::getInstance()->getTextureCache()->addImage("yellow.png"), Rect(0, 0, 10, 10));
    this->addChild(pb);
    ParticleSpiral *ps = ParticleSpiral::create();//螺旋形
    ps->setPosition(Point(300, 200));
    ps->setTextureWithRect(Director::getInstance()->getTextureCache()->addImage("yellow.png"), Rect(0, 0, 10, 10));
    this->addChild(ps);
    ParticleFireworks *pf = ParticleFireworks::create();//烟花效果
    pf->setPosition(Point(400, 200));
    pf->setTextureWithRect(Director::getInstance()->getTextureCache()->addImage("yellow.png"), Rect(0, 0, 10, 10));
    this->addChild(pf);

简单给出效果可以清楚的看出。都很丑。

但是这是因为使用图片未经选择和没有经过调整。

这里给出几个关键的属性,通过调整可以使得粒子效果很酷炫。

ParticleMeteor *pm = ParticleMeteor::create();setTextureWithRect(Director::getInstance()->getTextureCache()->addImage("yellow.png"), Rect(0, 0, 5, 5));//粒子引用的图片以及rect的大小

pm->setPosition(Point(x, y));//出现的位置

pm->setGravity(Point(-2, 0));//重力设置

pm->setStartSize(8.0f);//开始时粒子的size

pm->setTotalParticles(550);//设置粒子数

pm->setDuration(0.5);//粒子持续时间,以秒为单位

点击时这个火焰的效果会持续0.5秒,然后消失,再次触摸继续出现0.5秒。

时间: 2024-08-06 16:03:33

C#学习日志 day9 -------------- cocos2d-x 3.0 粒子效果简介的相关文章

Cocos2D v3.4.9粒子效果不能显示的原因分析及解决办法

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在游戏App中为了衬托气氛我们往往使用一些特殊的图形效果,粒子效果无疑是其中最为常用,也最为方便的一种. 正常使用下,粒子效果的确很稳定,但是本猫最近在RPG游戏里却遇到了粒子效果不能显示的问题,调试着实花了一些功夫.现将问题现象,分析以及解决方法记录下来和大家一起分享,也便于以后回忆查找. 问题现象很简单,就是粒子效果不显示-但也不是所有粒子效果都不显示,只

Cocos2d-x 3.1.1 学习日志11--一Windows下Android环境搭建(一定对你有用的!!)

安装步骤::(多么痛的领悟!!) 1. 配置JDK JDK下载地址: 设置环境变量: JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_21 CLASSPATH=.;%JAVA_HOME%\lib; Path增加%JAVA_HOME%\bin; 设置完后打开cmd,输入java -version 如果出现下面提示,表明环境变量设置成功: C:\Users\arlin>java -version java version "1.7.0_21&quo

cocos2d-x学习日志(18) --程序是如何开始运行与结束?

问题的由来 怎么样使用 Cocos2d-x 快速开发游戏,方法很简单,你可以看看其自带的例程,或者从网上搜索教程,运行起第一个HelloWorld,然后在 HelloWorld 里面写相关逻辑代码,添加我们的层.精灵等 ~ 我们并不一定需要知道 Cocos2d-x 是如何运行或者在各种平台之上运行,也不用知道 Cocos2d-x 的游戏是如何运行起来的,它又是如何渲染界面的 ~~~ 两个入口 程序入口的概念是相对的,AppDelegate 作为跨平台程序入口,在这之上做了另一层的封装,封装了不同

Cocos2d-x 3.1.1 学习日志13--CocosStudio学习必看

听说Cocos Studio很久了,主要是因为骨骼动画.目前看来Cocos2d-x播放动画的方式只有2种: 第一种:是播放序列帧动画,即将动画的每一帧都加载进缓存里,需要播放时再使用Animation类来播放,这种方法简单暴力,应对一些细节要求低的动画场景的时候,这么干无伤大雅.但是当动画帧数稍高的时候就会需要大量的图片,消耗资源很大. 第二种:是由Cocos2d-x提供的Action类来播放动画,这种动画是在帧循环中靠调整每次渲染的坐标来打到动画效果,由于帧循环是1/60秒刷新一次,会让这样播

Cocos2d-x 3.1.1 学习日志15--getContentSize和getContentSizeInPixels区别

cocos2d-x中使用getContentSize获得的就是逻辑点的大小,而getContentSizeInPixels获得的就是像素点的大小. 像素点和逻辑点的对应关系为:逻辑点的大小 = 像素大小 / contentScaleFactor. 如果在高分辨率的平台上(如Iphone4),使用非高分辨率的图片资源,且设置contentScaleFactor为1.0,则IOS的Core Animation compositor 会自动拉伸非高分辨率的资源来适配, 使其在非高分辨率和高分辨率设备上

winform学习日志(二十三)---------------socket(TCP)发送文件

一:由于在上一个随笔的基础之上拓展的所以直接上代码,客户端: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net.Sockets; using Sys

Linux学习日志2-vim使用基础

vim是linux操作系统下的一个文本编辑工具,功能非常强大,但刚学习起来比较复杂.vim的所有功能要讲明白得有几百页,在这里只是记录一下vim的一些基本用法. 首先vim打开文件的三种方式: vim +# xxx(#是数字):表示打开xxx文件并将光标定位到指定行. vim -o xx1 xx2 xx3:表示同时打开三个文件,垂直分割显示 vim -O xx1 xx2 xx3:表示同时打开三个文件,水平分割显示 多个文件间跳转:键入ctrl+w后:→向左.←向右.↑向上.↓向下 vim打开文件

Linux学习日志day1——无人值守系统安装DHCP+TFTP+PXE+Kickstar

Linux学习日志day1--无人值守批量系统远程网络安装(DHCP+TFTP+PXE+Kickstar)                                         --作者:江信瀚 服务器环境介绍: 主机名:workstation.example.com 关闭SElinux以及防火墙 虚拟机:VMware(关闭了VMware的DHCP服务) 网卡配置: 静态IP获取! IPV6全部都删除,因为根本用不到 子网IP可以在VMware中设置 8.8.8.8是谷歌的DNS服务器

Cocos2d-x 3.1.1 学习日志4--cocos2d-x解决中文乱码问题的几种办法

做个打飞机的游戏,由于版本太新,网上基本没有教教程,我的版本是cocos2d-x 3.1.1的,今天遇到cocos2dx中中文乱码的问题.无奈只好Google百度寻求答案,明白了这个问题的缘由.因为cocos2d-x内部是以utf8处理文本的,而VS直接输入时文本编码为GBK,如果添加L标志,则为Unicode编码. 解决这个问题有三种办法: 将源代码文件保存为utf8编码,不过由于编译器的问题,这种方式会导致很多无法预测的问题 将字符串用utf8编码集中存到一文件中,然后用代码读取这些字符串来