应群里的朋友要求而写
游戏当中的人物移动和地图滚屏其实是两个独立的运行过程,而且一般来说,地图滚屏是因人物移动而触发的被动过程,那么如何使人物移动的时候始终居中呢,实际上,只要合适的移动地图,让地图沿人物的移动方向反向移动,就可以做到人物始终居中的效果。而这个地图的移动过程就是滚屏,那么滚屏是怎么来实现的呢。以rpg游戏为例,rpg游戏的地图是以tile方式排列的。假设一个场景大小为sw×sh个tile,而屏幕大小为w×h个tile,tile规格为a*b,那么在canvas中绘制地图的时候(1.0的做法),应该设置变量x0,y0标志当前屏幕左上角的tile在整个大场景中的位置,然后
for(int x=0;x<w;x++)
for(int y=0;y<h;y++)
{
g.drawimage(screen[sc[(y+y0)*sw+x+x0]],x*a,y*b,0);
}
其中,sc[]数组表示地图索引,screen[]数组是tile图片。sc[]数组一般是通过读入外部索引文件生成,他的数值就是指定tile中的图片编号。比如sc[2]=3就表示第3个tile中需要用编号为4为图片来绘制。
由上面的代码就可以看出,当人物移动的时候,相应改变x0和y0的值,就可以实现地图的滚屏了。
- 作者: gophinight 2005年03月29日, 星期二 20:54 加入博采
你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryid=1050968
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器