Cocosd-x屏比
完美主义情况下android自适屏,最好的方式当然是做多套不同分辨率屏幕大小的图片资源,但是一般作为我们这样的小团队开发,不会去花费太多的时间去做多套不同的资源,能给你多做几个封面就不错了,所以这个重任又从美术的头上落到我们程序猿的头上,在cocos2d-x中android包默认支持等比例的屏幕缩放,具体实现方式,在jni/helloworld/main.cpp中增加如下代码即可。继续拿HelloWorld开刀! 等比缩放效果图: 这样游戏就已经等比缩放了,不过在大部分android手机上会有黑边,虽然我个人比较喜欢这种方式,因为等比缩放游戏画面不会变形,但是通常情况下我说是没用的,策划说要全屏的,测试说要全屏的,我说让美术做个图,美术说要约会,没时间加班,好吧。又成了程序员的事了。 上面说过cocos2d-x默认支持等比例缩放,从源代码可以看出来,这些源代码在cocos2dx/platform/android下面,在CCEGLView_android.cpp中
18
19
20
21
|
(
int
width
height
)
{
width
==
0
||
height
0
)
{
return
;
}
m_sSizeInPoint
.
;
;
// calculate the factor and the rect of viewport
// 这里取宽高需要缩放比例中小的那个作为等比缩放的比例,可以保证画面完全显示,但是会有黑边
// !!!需要修改的地方就是这里!!!
m_fScreenScaleFactor
MIN
float
)
m_sSizeInPixel
/
;
viewPortW
int
m_fScreenScaleFactor
;
viewPortH
;
m_rcViewPort
origin
x
-
viewPortW
)
2
;
y
viewPortH
;
size
;
;
m_bNotHVGA
true
;
在CCEGLView_android中增加宽高不同的缩放参数,并使用这两个参数来对画面进行不等比缩放 CCEGLView_android.h中增加
8
9
|
float
getScreenScaleFactor
;
// Hxs add for non uniform scale. 2013/05/15
getScreenScaleFactorX
;
getScreenScaleFactorY
;
/*********************/
// 原本只有一个缩放参数,等比缩放会有黑边
// Hxs add for non uniform scale. 2013/05/15
m_fScreenScaleFactorX
// X,Y方向的缩放参数
m_fScreenScaleFactorY
;
|
CCEGLView_android.cpp中