在BCB中实现背景平滑循环滚动

原创 2003年12月02日 21:54:00
主页:http://www.maxss.net
Email: maxss.net@163.com


  对于一些小游戏或多媒体程序应用,经常需要制作一些循环滚动的背景效果。这种效果其实很容易做,基本上用for循环就可以实现了,但在滚动的过程中实现背景图两端平滑的过渡就需要一些技巧了。下面为大家介绍我的实现方法。

  首先要做的是一张经过特殊处理的背景图,至于这样的背景图如何制作,大家可以参考本站的另一篇文章“使用Photoshop制作两端平滑衔接的背景图”。

  然后就是程序的编码了,在这里还是简单地说一下思路吧。现在我们已经得到一张经过特殊处理的背景图,而在每次循环中只需要更新X(或Y)的值,并以其为起始开始的一段固定长度画出就行了。如图-1所示:

CSDN_Dev_Image_2003-12-11503501.jpg
(图-1)

对于固定长度超出背景长度的那一段则从背景头截取补上,因为背景图经过处理,所以这里就不会出现明显的“断层”了。如图-2所示:

CSDN_Dev_Image_2003-12-11503503.jpg
(图-2)

为了让动画不闪烁,建议使用双缓冲技术来进行背景绘画。以下是算法的基本实现(来自前段时间我没写完的小飞机游戏):

在我的主页中已提供完整源码及程序下载:
http://www.maxss.net
http://www.maxss.net/download
http://www.maxss.net/download/mss/over_fog.rar

一个从右到左,文字循环平滑滚动的例子(Delphi7测试通过)

procedure TForm2.Button1Click(Sender: TObject);var  oldRect, rzPanelRect: TRect;  oldBitmap: TBitmap...
  • formiss
  • formiss
  • 2008年05月15日 15:12
  • 4041

Cocos2dx_背景层循环滚动

function MovieLayer:update(dt) local posY1 = self.m_bg1:getPositionY() local posY2 = self.m_bg2:g...
  • c201038795050
  • c201038795050
  • 2015年08月17日 11:15
  • 440

设置背景图循环滚动

在编写程序时,部分程序的背景是静止的,而部分程序则要求背景是运动的(类似天天酷跑)。如果需要让背景图运动,我们就需要图片循环滚动技术。          其实这个原理非常简单。假设背景图是从左往右运...
  • h549570564
  • h549570564
  • 2015年03月09日 21:26
  • 965

原生JavaScript实现手机端循环滚动背景效果

我们常常在一些飞行游戏中见到一些可以循环进行的背景,那么它是怎么实现的呢?自己思考了一下,就写了一个Demo,并且把制作的思路也分享出来,抛砖引玉,如果有朋友有更好的写法,也欢迎向我拍砖,帮助我提高:...
  • codeKMR
  • codeKMR
  • 2016年03月14日 14:58
  • 367

cocos-js实现背景图的滚动

cocos-js实现背景图的滚动 var ShuffLayer = cc.Layer.extend({     _turnImg1:null,     _turnImg2:null, ...
  • qq_24122593
  • qq_24122593
  • 2015年11月13日 11:58
  • 1217

Cocos2d-x3.0游戏实例之《别救我》第三篇——循环滚动背景

好,这篇我们来讲解无限循环滚动背景,这个知识已经被讲到烂了,我以前的文章也介绍过,所以就不那么详细地说明了。   笨木头花心贡献,啥?花心?不呢,是用心~ 为什么是循环滚动背景? 用循环滚动背景,...
  • musicvs
  • musicvs
  • 2014年05月04日 17:33
  • 12143

Unity3D~2D游戏背景的循环滚动

unity3D的2D游戏背景循环滚动制作。
  • zzlyym
  • zzlyym
  • 2016年04月03日 14:07
  • 2377

简单粗暴的实现背景图无限循环滚动

先上图,UI说了,这里要做动画,让小车感觉在奔跑的动画。UI的建议是背景图不停的移动,视觉上就是小车不停的在奔跑。那么,怎么实现呢?很简单,可能不是最佳的实现方式,但是很暴力。码代码:public c...
  • qq_28268507
  • qq_28268507
  • 2017年03月24日 20:11
  • 1413

android 游戏 实战打飞机游戏 实现无限循环的背景图(2)

分析下游戏界面内的元素 : 无限滚动的背景图, 可以操作的主角,主角的子弹, 主角的血量,两种怪物(敌机),一个boss, boss的爆炸效果. 1, 首先实现无限滚动的背景图 原理: 定义两...
  • liudao7994
  • liudao7994
  • 2016年05月31日 14:31
  • 1350

Unity3d学习笔记-无限循环滚动背景(完整的商店广告牌组件)

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...
  • qq_22329587
  • qq_22329587
  • 2016年10月31日 12:00
  • 702
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在BCB中实现背景平滑循环滚动
举报原因:
原因补充:

(最多只允许输入30个字)