开发uniervsal应用时,当 iphone 做好,开始向ipad 上移植的时候. 就会遇到一个坐标转换的问题. 一般情况下,做法是
if(ipad){
...
}else{
...
}
 非Universal 版或许是:
 #ifdef IPAD
...
#else
...
#endif
当然这么写一点问题都没有, 只是有点麻烦.
所以这里总结了下坐标对应问题:
 
 int g_iPadScale;
 int g_iPadOffsetX;
 int g_iPadOffsetY;
 
 //全居中
 #define ccu(x, y) ccp((g_iPadOffsetX+g_iPadScale*x), (g_iPadOffsetY+g_iPadScale*y))
 #define ccu_center(x, y) ccu(x, y)
 
 //左对齐
 #define ccu_l(x,y) ccp((g_iPadScale*x), (g_iPadOffsetY + g_iPadScale*y))
 //右对齐
 #define ccu_r(x,y) ccp((2*g_iPadOffsetX+g_iPadScale*x), (g_iPadOffsetY+g_iPadScale*y))
 //底对齐
 #define ccu_b(x,y) ccp((g_iPadOffsetX+g_iPadScale*x), (g_iPadScale*y))
 //顶对齐
 #define ccu_t(x,y) ccp((g_iPadOffsetX+g_iPadScale*x), (2*g_iPadOffsetY+g_iPadScale*y))
 
 //左下角
 #define ccu_lb(x,y) ccp((g_iPadScale*x), (g_iPadScale*y))
 //右下角
 #define ccu_rb(x,y) ccp((2*g_iPadOffsetX+g_iPadScale*x), (g_iPadScale*y))
 //左上角
 #define ccu_lt(x,y) ccp((g_iPadScale*x), (2*g_iPadOffsetY+g_iPadScale*y))
 //右上角
 #define ccu_rt(x,y) ccp((2*g_iPadOffsetX+g_iPadScale*x), (2*g_iPadOffsetY+g_iPadScale*y)) 三个参数在应该初始化的时候分别赋值: //全局变量的初始化
 if(m_deviceType == e_Device_ipad){
  
 g_iPadScale =2;
 g_iPadOffsetX = 32;
 g_iPadOffsetY = 64;
 }else{
  
 g_iPadScale =1;
 g_iPadOffsetX = 0;
 g_iPadOffsetY = 0;
 }
其中x, y 为美术给的在标清(320, 480) 里面的坐标.
这么一来, 代码中只要根据美术的布局需求,用一套对应的坐标转换函数就可以了.