Cocos2D-x游戏开发之十:背景无限滚动

Cocos Creator 实现背景无限滚动效果 文章目录1、引言2、问题3、原理4、实现4.1、场景搭建4.2、代码5、效果展示6、结束语 1、引言   我们在制作一些2d游戏时经常需要用到背景滚动效果来做一些文章。 2、问题   那么既然背景滚动,那么我们总不能做一个无限长的背景来移动吧,那怎么办呢!事实上,解决方案不止一种,我们这里说一下两张背景无限滚动的方法。 3、原理   简单来说就是场景中两张背景图片交替的在移动,在游戏的每帧中... 阅读详情

        今天研究了一下Coco2D-x的背景无限滚动,其实是学习别人的demo,不过自己最终还是折腾出来了,其实还是比较简单了,就是背景不停地移动然后两张图片交替的贴上去。

其精髓之处就是不断地更新背景然后在每一帧里调整两张背景的\X锚点,然后就会给人一种主角再向前奔跑的感觉。核心代码如下:

bool TollgateScene::init()
{
bool bRet = false;
do 
{
CC_BREAK_IF(! CCLayer::init());
CCSize size= CCDirector::sharedDirector()->getWinSize();
CCSprite* sprite = CCSprite::create("sprite.png");
//sprite->setPosition(ccp(size.width/2, size.height/2));
m_player = Player::createWithLayer(this);
m_player->BlindSprite(sprite);
this->addChild(m_player,2);

CocosCreator背景无限滚动(使用多张图片实现) 本示例使用三张同样图片,排列方式为并排排列 逻辑关键代码: @property([cc.Node]) bgs: cc.Node[] = []; //用于管理背景图片结点的数组,记得回cocos面板中添加数组的结点数量 bg_speed: number = 20; //移动时控制速度的变量 dis: number = this.bg_speed * 10; //即将消失的图片延迟... 阅读详情

相关推荐

cocos: 无限循环滚动背景

头文件: #pragma once #ifndef _ROLLER_LAYER_H_ #define _ROLLER_LAYER_H_ #include "cocos2d.h" USING_NS_CC; class RollerLayer :public Layer { public: static const int VERTICAL = 1; static const int

一步一步走 1923

cocos2dx中用动作实现背景无限滚动

cocos2dx-3.1.5中用动作实现背景滚动cocos2dx3.x都可以使用的用到的动作其实很简单 MoveBy 因为有反动作 TargetedAction 给指定目标1个动作 Spawn 同时执行 Sequence 动作按照顺序执行 RepeatForever 一直重复执行 头文件#pragma once#include "GameSceneManager.h"#define DEF_RO

小菜希的Blog 1639

Cocos2d-x】新手自学(九)滚动背景..实现无限卷轴效果(2.0.1版本)

这段时间一直在研究2.0.1这个版本的引擎...发现和1.0X的差别比较大..有很多函数,都改了名字.. 这次我分享一下那种类似于雷电..游戏的纵版背景滚动.. 1. 如果想使窗口看起来更加适合纵版游戏,首先改变窗口大小(分辨率),在main.cpp这个自动生成的文件中有这个一句:改变那两个数字就行~ AppDelegate app; CC

一颗蓝米粒 6790

cocos2d-x无限滚动背景

在一些跑酷类,打飞机类的手游,背景需要无限滚动,我也来实现一下无限跑动。原理比较简单,就是画一张头尾可以相接图片,用两个精灵加载这个图片,两个精灵的位置是相接的,然后两个精灵轮流显示,如果有一个精灵完全离开屏幕,则将精灵设置为连接在另一个精灵后的位置。我们来看看代码: bool CTest::init() { CCAssert(CCLayer::init(), "");

dssdss123的专栏 4503

Cocos2d-x学习(九):cocos2d-x 无限背景滚动

最近在学习飞行射击类游戏的一些开发,学到的东西确实不少,比如,无限背景滚动,子弹的缓冲池,面向组件开发等等! 今天就来总结一下无限背景滚动的实现! 飞行类的游戏都是基于背景滚动,造成视觉上的假象,认为飞机在飞行,而不是“真正的向前飞”。。。 1.原理 滚动的原理:设定一个速度,在每次调用update(ccTime dt) 时,就根据速度和dt得到移动的偏移量,因为更新频率很快,所

oneRain88的专栏 1万+

Cocos2d-x学习(二):用cocos2d-x实现MoonWarriors(无限背景滚动的简单实现)

特别声明:本文所有图片资源来源于MoonWarriors cocos2d-html 开源项目 之前总结过一次无线背景滚动的实现方法,基本上是基于cocos2d-html版的MoonWarriors的方法实现的, 博客地址:cocos2d-x学习(九):cocos2d-x 无限背景滚动 其实原理都是类似的,都是通过移动背景图,造成玩家角色移动的假象,而无限背景滚动就是两

oneRain88的专栏 8517

Cocos2d-x】实现可上下左右无限滚动背景

说明: (1).相关参数 1.speed(速度) 2.direction (方向(横向、竖向滚动)) 3.length(可视区域长度) 4.imgs(参与滚动的图片,至少两张) (2)实现思路 1.根据方向而选择图片的宽或高初始化图片的位置 2.定时器根据速度定时更新背景位置,当图片超出可视区域时,设置图片的位置到末尾。

2998

Cocos2d-x游戏开发实例详解3:无限滚动地图

通过自己的实际演练,详细解说Cocos2d-x引擎的个模块。今天讲解无限滚动地图。一般打飞机类游戏都是飞机不动,背景滚动,造成飞机在天空飞的效果。 MoonWarriors的背景有两层,一个远景天空,一个近景漂浮物,这两层背景滚动速度不一样,形成一种纵深感。 如图: 图有点模糊,实际效果跟html5的一样(根本就是照着它写的,嘿嘿) 前面说了,背景分为两部分,天空和漂浮物,下面分别解释一下 1,天空背景 源图是一张320*576的jpg图片。加载的时候实质上是分两次进行的。 ..

翻肚鱼儿的博客 738

Cocos2d-x《雷电大战》-双层地图无限滚动

  本文要实现飞机射击游戏中的地图无限滚动的功能,这里分为两个层,一个层无限向下滚动,一个层无限向上滚动,这样子结合起来效果就非常有层次感,也非常逼真,这里我把地图层都写成一个类,自己把地图改下,就可以成为你自己的了!下面,我们开始吧   先来看看效果:         Cocos2d-x版本:3.4   工程环境:VS30213   一、实现思路   其实就是两张图片,然后同时一起向下(...

weixin_44239023的博客 293

cocos2d-x 《Flappy Bird 》一、滚动背景的实现

《flappy bird》是由来自越南的独立游戏开发者Dong Nguyen所开发的作品,游戏中玩家必须控制一只小鸟,跨越由各种不同长度水管所组成的障碍,而这只鸟其实是根本不会飞的……所以玩家每点击一下小鸟就会飞高一点,不点击就会下降,玩家必须控制节奏,拿捏点击屏幕的时间点,让小鸟能在落下的瞬间跳起来,恰好能够通过狭窄的水管缝隙,只要稍一分神,马上就会失败阵亡。 图片资源提取后使用P

West Third Ring 2518

Cocos2d-x实现场景无限滚动

在游戏中,人物行走,其实是背景向相反方向移动,给玩家形成了一个人物向前移动的错觉。 详细步骤如下,懒得码字了,代码中注释得很清楚: 1 做一个人物无限原地踏步的动画,代码如下所示: //创建人物精灵 CCSprite *mainsprite = CCSprite::create("s_1.png"); //...

awp396918513的博客 226

19、欢乐滚动游戏开发中的背景滚动与虚拟手柄实现

本文详细介绍了游戏开发背景滚动与虚拟手柄的实现方法。包括iPad版本适配、背景条纹滚动、视差速度因子、无限滚动、消除闪烁、纹理重复等关键技术,并引入开源虚拟手柄库SneakyInput实现触摸控制。通过代码示例和问题解决方案,帮助开发者提升游戏视觉效果与操作体验。

gg901的博客 115

无限背景滚动

之前总结过一次无线背景滚动的实现方法,基本上是基于cocos2d-html版的MoonWarriors的方法实现的,博客地址:cocos2d-x学习(九):cocos2d-x 无限背景滚动其实原理都是类似的,都是通过移动背景图,造成玩家角色移动的假象,而无限背景滚动就是两个背景图,依次排开,移动,判读是否移除屏幕外,位置更改,循环交替。在之前的博客中,我是在update()方法中根据时间和背景移动

过期的码农 1053

Cocos2d-x《雷电大战》(1)-双层地图无限滚动

本文要实现飞机射击游戏中的地图无限滚动的功能,这里分为两个层,一个层无限向下滚动,一个层无限向上滚动,这样子结合起来效果就非常有层次感,也非常逼真,这里我把地图层都写成一个类,自己把地图改下,就可以成为你自己的了!下面,我们开始吧

Evankaka的专栏 8926

cocos2d-x实现背景无限循环

横版卷轴游戏一般把角色放在屏幕特定位置,通过移动背景,造成人物往反方向移动的错觉。cocos2d-x中可以用同一张背景图生成2个精灵,让他们首尾相连,一起移动。每一帧检查前者位置,一旦超出屏幕范围(不可视),重新设置坐标紧跟后者。形象的比喻就是2个人在排队办业务,排在前面的人办好了又回到队伍后面。 代码如下: class SprBg :public cocos2d::CCLayer { pu

u012437415的博客 890
上一篇: Cocos2D-x游戏开发之九:屏幕触摸一:基本屏幕操作响应
下一篇: Cocos2D-x游戏开发之十一:在游戏背景上添加精灵
vanquishedzxl
博客等级 码龄14年 91粉丝 83原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值