Cocos2d入门--3--小球运动

本章直接上源代码。内容不难,主要就是

HelloWorldScene.h文件:

 1 #ifndef __HELLOWORLD_SCENE_H__
 2 #define __HELLOWORLD_SCENE_H__
 3
 4 #include "cocos2d.h"
 5
 6 class HelloWorld : public cocos2d::Layer
 7 {
 8 protected:
 9     float _angle;
10     cocos2d::Vec2 _vec;
11 public:
12     static cocos2d::Scene* createScene();
13
14     virtual bool init();
15
16     // a selector callback
17     void menuCloseCallback(cocos2d::Ref* pSender);
18
19     // implement the "static create()" method manually
20     CREATE_FUNC(HelloWorld);
21
22     virtual void update(float dt);
23 private:
24     //获取屏幕可视范围
25     float width_L;
26     float width_R;
27     cocos2d::DrawNode* ball;
28 };
29
30 #endif // __HELLOWORLD_SCENE_H__

HelloWorldScene.cpp文件:

 1 // on "init" you need to initialize your instance
 2 bool HelloWorld::init()
 3 {
 4     //////////////////////////////
 5     // 1. super init first
 6     if ( !Layer::init() )
 7     {
 8         return false;
 9     }
10
11     Size visibleSize = Director::getInstance()->getVisibleSize();
12     Vec2 origin = Director::getInstance()->getVisibleOrigin();
13     width_L = origin.x;
14     width_R = origin.x + visibleSize.width;
15
16     ball = DrawNode::create();
17     ball -> drawDot(Vec2(0, 0), 4, Color4F(1.0f, 1.0f, 1.0f, 1.0f));
18
19     addChild(ball);
20     ball -> setPosition(origin.x + visibleSize.width/2,origin.y + visibleSize.height/2);
21
22     //action相关的运动我们一般不是用来做游戏的运动,一般用来做游戏的变化效果。因为action不能很好的用来表现出游戏的效果
23 //    dot -> runAction(RepeatForever::create(MoveBy::create(0.2, _vec*100)));
24     //
25     scheduleUpdate();
26     return true;
27 }
28
29 void HelloWorld::update(float dt){
30     ball -> setPositionX(ball->getPositionX()+5);
31     if (ball->getPositionX()<width_L-ball->getContentSize().width/2
32         || ball->getPositionX()>width_R+ball->getContentSize().width/2) {
33         ball->setPositionX(-ball->getContentSize().width/2);
34     }
35 }

然后实现的效果:

时间: 10-23

Cocos2d入门--3--小球运动的相关文章

Cocos2d入门--3-- 向量的应用

 Cocos2d入门--3-- 向量的应用 小球向一个方向持续运动的Demo HelloWorldScene.h ...... //设置一个protected的属性 protected: cocos2d::Vec2 _vec; ...... HelloWorldScene.cpp //这个是通过随机数设置向量的方向 _vec.set(random(-0.1f, 1.0f), random(-1.0f, 1.0f)); //通过normalize这个标准化函数,能够使得向量的大小为1 _vec.n

Cocos2d入门--1-- 初涉相关属性或代码

 Cocos2d入门--1-- 初涉相关属性或代码 Cocos2d vision:  cocos2d-x-3.8.1 万丈高楼,起于累土.对于一个游戏框架的学习,其实在于框架功能的使用积累,学会了如何在cocos2d游戏引擎的基础上使用它提供的各种功能,并灵活运用, 以及学会查阅Cocos2d官方提供的API文档.相信自己也能开发出自己喜爱或者让别人羡慕的游戏. 目录: 1>认识origin和visibleSize以及cocos2d的基础绘画类DrawNode的简单实用 2>认识 CCLOG(

Windows Store App JavaScript 开发:小球运动示例

通过前面内容的学习,相信读者已经对开发基于JavaScript的Windows应用商店应用有了一定的了解,本小节通过一个小球运动的示例来介绍如何新建一个JavaScript的Windows应用商店项目,以及怎样向项目中添加功能实现代码. 首先启动Visual Studio 2012集成开发工具,打开"文件"菜单,选择其中的"新建项目"菜单项后会弹出"新建项目"窗口.在"新建项目"窗口左侧的JavaScript模板分类中选择&q

Cocos2d入门--2--三角函数的应用

其实,三角函数的知识点是初中的数学基础.但是在编程里合理的利用的话,也会很好玩的,可以制作出很多有趣的动画特效. 首先要注意的是 角度 和 弧度 的转换. 360度 = 2×PI弧度 180度 =   PI弧度 所以30度的正弦函数 = sin(30/180×PI) 但是在cocos2d游戏引擎提供的sin(参数值)这里的参数值范围是在[0,1]之间. 利用三角函数的波形来控制小球的运动 关键代码: 头文件: 1 protected: 2 float _angle; cpp实现文件: 1 _an

【Cocos2d入门教程一】Cocos2d-x环境搭建

在进行Cocos2d游戏开发前 我们先来配置一下环境,我们先来准备一下工具,我们所需要的工具分别为: 1.Cocos2d引擎 2.JDK 3.SDK 4.NDK 5.ANT 6.ADT 1.下载Cocos2d-x引擎,目前最新版本为3.6,本教程的所有例子以3.4版本为例,下载完直接解压即可.点击下载Cocos2d引擎 2.JDK 检查自己电脑上是否已装好JDK环境 方法:打开终端,输入 java–version 如果没有安装过,点击下载JDK 效果如下: 3.ADT下载,ADT被称为安卓的集成

【Cocos2d入门教程五】Cocos2d-x动作篇

动作类(Action)是所有动作的基类,它创建的一个对象代表一个动作.动作作用于Node,包括继承于之下的Layer.Sprite.因此每个动作 都需要由Node对象或者其继承者执行.动作类(Action)作为基类,实际上是一个接口,动作类的大多数实现类都派生于有限时间动作类 (FiniteTimeAction).其关系图如下: 在实际开发中我们通常用到两类动作-即时动作和持续动作,它们均继承于有限时间动作类. 1. 即时动作 放置–Place 隐藏– Hide 显示– Show 可见切换–To

Cocos2d-x加速度计实例:运动的小球

下面我们通过一个实例介绍一下如果通过层加速度计事件实现访问加速度计.该实例场景如下图所示,场景中有一个小球,当我们把移动设备水平放置,屏幕向上,然后左右晃动移动设备来改变小球的位置. 下面我们再看看具体的程序代码,首先看一下HelloWorldScene.h文件,它的代码如下: [html] view plaincopy #ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h"

HTML5 Canvas绚丽的小球详解

实例说明: 实例使用HTML5+CSS+JavaScript实现小球的运动效果 掌握Canvas的基本用法 技术要点: 从需求出发 分析Demo要实现的功能 擅于使用HTML5 Canvas 参考手册 主要分为两个部分: 静态布局:小球的设计,包括小球的位置.颜色.大小和大小变化情况等,初始化小球的函数,渲染函数,Update函数 动态主体:变量.数组的的定义,小球显示时长定时,鼠标移动触发小球运动的函数 代码部分: canvas标签,提供绘图的画布 js逻辑:静态小球 其中,_init()函数

笔记-2.带尾巴小球弹跳

先说尾巴跟随: 尾巴跟随是典型的运动跟随,随着根部的运动,尾巴的每部分自然而柔软地跟随运动,中间帧不能出现直挺挺的尾巴这种不自然的状态,也不能出现僵硬的运动. 具体实现: 可以通过一个个中间帧调节尾巴不同部分来达到自然柔软的效果,但对于尾巴跟随运动最简单的是拖帧法,即从根部到尾部按顺序少选一个控制器,将关键帧依次向后拖动几帧(就是让尾巴从根部向尾部的运动变化依次向后慢几帧出现). 运动曲线是这样的: 可以拖动曲线让根部摆动幅度小些: 同理可以再做出尾巴其他方向的摆动 --------------