gpt4 book ai didi

ios - 通过代码连续画一条线

转载 作者:行者123 更新时间:2023-12-03 16:47:27 24 4
gpt4 key购买 nike

我对 iOS 开发完全陌生,我脑子里有一个想法,但我不知道如何正确实现它。

我需要的是我的程序来画一条线,用户可以通过点击按钮来控制这条线。这有点像“贪吃蛇”游戏。我尝试了核心显卡,但我认为这不是正确的方法。我做了以下事情:

- (void)viewDidLoad{
[NSTimer scheduledTimerWithTimeInterval:.02 target:self selector:@selector(updateGame:) userInfo:nil repeats:YES];
}


-(void)updateGame:(id)sender{

double timeInterval= [self.lastDate timeIntervalSinceNow]*-1;

for (int n=0; n<playerNum; n++) {

CGPoint lastPoint=[[locationArray objectAtIndex:n]CGPointValue];

CGPoint updatedLoc= CGPointMake(lastPoint.x+100*timeInterval*sin([[directionArray objectAtIndex:n]doubleValue]), lastPoint.y+60*timeInterval*cos([[directionArray objectAtIndex:n]doubleValue]));

[locationArray replaceObjectAtIndex:n withObject:[NSValue valueWithCGPoint:updatedLoc]];

[self.drawingView drawToBufferFrom:lastPoint to:updatedLoc withColor:[colorArray objectAtIndex:n]];



}

self.lastDate=[NSDate date];
}

在DrawingView.m中

-(void)drawToBufferFrom:(CGPoint)lastLoc to:(CGPoint)currentLoc withColor:(UIColor *)color{


//[color setStroke];
CGContextSetStrokeColorWithColor(offScreenBuffer, color.CGColor);
//CGContextSetRGBStrokeColor(offScreenBuffer, 1, 0, 1, 1);
CGContextBeginPath(offScreenBuffer);
CGContextSetLineWidth(offScreenBuffer, 10);
CGContextSetLineCap(offScreenBuffer, kCGLineCapRound);

CGContextMoveToPoint(offScreenBuffer, lastLoc.x, lastLoc.y);
CGContextAddLineToPoint(offScreenBuffer, currentLoc.x, currentLoc.y);
CGContextDrawPath(offScreenBuffer, kCGPathStroke);

[self setNeedsDisplay];


}

- (void)drawRect:(CGRect)rect
{
CGImageRef cgImage= CGBitmapContextCreateImage(offScreenBuffer);
UIImage* screenImage= [[UIImage alloc]initWithCGImage:cgImage];
CGImageRelease(cgImage);
[screenImage drawInRect:self.bounds];
}

用户点击屏幕两侧会改变方向。然而我面临的是:设备本身存在主要滞后,因此我认为需要一种更简单的方法来绘制这些线而没有任何滞后。

最佳答案

UIBezierPath 更简单,但更好的方法是 cocos2d 或类似的游戏开发框架,特别是如果您想包含叠加层或 Sprite ......

关于ios - 通过代码连续画一条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9959062/

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