rie*_*ens 10 iphone 2d opengl-es ios
我正在为iOS制作2D拼图,目前我正在尝试使用UIPinchGestureRecognizer实现缩放和滚动.
缩放是这样完成的:我有一个目标2D矢量,它是一个"缩放点".代码是:
glTranslatef(target.x, target.y, 0);
glScalef(scale, scale, 0);
glTranslatef(-target.x, -target.y, 0);
Run Code Online (Sandbox Code Playgroud)
正在使用手势识别器以这种方式选择目标:
-(void)handlePinchGesture:(UIPinchGestureRecognizer*)recognizer
{
if (UIGestureRecognizerStateBegan == [recognizer state])
{
view->setTarget([recognizer locationInView:self]);
}
// Rest of the code omitted
}
Run Code Online (Sandbox Code Playgroud)
一切正常.
最初这款游戏是专为iPAD设计的,但我希望它能够在iPhone和iPOD上运行.但iPhone和iPOD具有不同的宽高比.为了保持初始图像比例,我决定使初始Y比例更大一些.此外,这使得可以使用初始缩放因子上下滑动游戏区域.代码是:
glTranslatef(target.x, target.y, 0);
glScalef(scale, scale * aspectRatio, 0);
glTranslatef(-target.x, -target.y, 0);
Run Code Online (Sandbox Code Playgroud)
如果游戏区域在屏幕上"居中"(例如,在机器人滑动方向上有相同的空间(向上和向下)),这可以正常工作.但是如果我们向上或向下滑动场并开始捏合手势,游戏区域会再次跳到中心.
我知道我需要通过一些偏移来转换手势位置,但我无法确定3天内的确切方式.
| 归档时间: |
|
| 查看次数: |
828 次 |
| 最近记录: |