gpt4 book ai didi

ios - cocos2d画板的小问题

转载 作者:行者123 更新时间:2023-11-29 04:25:03 24 4
gpt4 key购买 nike

我正在尝试添加一个“白板”,以便人们可以在上面画线。

唯一的问题是,如果我画得非常快,它会将 Sprite 间隔得很远,所以如果他们试图绘制字母或数字,它几乎难以辨认。不同的 Sprite 之间有很大的空间。

这是我的方法,我认为大部分绘图都是在其中进行的。

-(void) update:(ccTime)delta
{
CCDirector* director = [CCDirector sharedDirector];
CCRenderTexture* rtx = (CCRenderTexture*)[self getChildByTag:1];

// explicitly don't clear the rendertexture
[rtx begin];

for (UITouch* touch in touches)
{
CGPoint touchLocation = [director convertToGL:[touch locationInView:director.openGLView]];
touchLocation = [rtx.sprite convertToNodeSpace:touchLocation];

// because the rendertexture sprite is flipped along its Y axis the Y coordinate must be flipped:
touchLocation.y = rtx.sprite.contentSize.height - touchLocation.y;


CCSprite* sprite = [[CCSprite alloc] initWithFile:@"Cube_Ones.png"];
sprite.position = touchLocation;
sprite.scale = 0.1f;
[self addChild:sprite];
[placedSprites addObject:sprite];
}

[rtx end];
}


Maybe this is the cause?

[self scheduleUpdate];

不过,我并不完全确定如何减少更新之间的时间。

提前致谢

最佳答案

问题很简单,用户可以在两个触摸事件之间将触摸位置(即他/她的手指)移动很远的距离。您可能会收到一个 100x100 分辨率的事件,而下一个手指已经处于 300x300 分辨率。您对此无能为力。

但是,您可以假设两个触摸位置之间的变化是线性移动。这意味着您可以简单地分割相距超过 10 像素距离的任何两个触摸,并将它们分割为 10 像素距离间隔。因此,您实际上可以自己生成中间触摸位置。

如果您这样做,最好限制两次触摸之间的最小距离,否则用户可能会在非常小的区域内绘制大量 Sprite ,这不是您想要的。因此,只有当新的触摸位置距前一个触摸位置 5 个像素时,您才会绘制新的 Sprite 。

关于ios - cocos2d画板的小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12435543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com