今天下午准备做一个从游戏返回到主菜单
但是按键了却画面没有改变,本应回到主菜单
找了很久原因,网上各种搜索都没找到
跟踪检查,发现状态机在按键之后就变成了菜单选项
但为什么就绘不出菜单呢
问了一个朋友,给个提示才恍然大悟
原来问题出在绘制地图的setclip(,,,)
绘制了地图后把地图分成了很多块
所以菜单页面被画到其中一个界面
就没有在全界面显示出来
解决办法
在地图画完的最后面加一个setclip(0,0,screenWidth,screenHeight)
目的是让后续的绘图还是覆盖整个手机屏幕
下面是setClip的用法
setClip方法的原理是通过只在屏幕上显示一部分内容,让图片恰好位于该部分的内容显示出来。
setClip的方法就是在屏幕上设置这个“透视孔”,只有位于该孔中的图片内容显示出来。
setClip的方法说明如下
public void setClip(int x, int y, int width, int height)
其中
x——可以显示的矩形区域左上角的x坐标
y——可以显示的举行区域左上角的y坐标
width——矩形的宽度
height——巨型的高度
实际使用示例
g.setClip(10,20,20,30);
g.drawImage(image,10,20,Graphics.LEFT | Graphics.TOP);
则只显示image对象代表的图片中从开始位置,高30,宽20的部分,其余的部分都不显示。
注意:在使用完setClip以后,需要恢复系统的默认设置,使整个屏幕都可以显示:
g.setClip(0,0,this.getWidth(),this.getHeight());
本文介绍了一种在游戏开发过程中遇到的状态切换时画面显示不全的问题及解决方案。问题出现在从游戏状态切换到主菜单状态时,菜单未能正确显示。原因是之前绘制地图时使用了setClip方法限制了显示区域,导致菜单被截取。解决方法是在绘制地图后恢复默认的setClip设置。
682

被折叠的 条评论
为什么被折叠?



