我收到错误:CGAffineTransformInvert:每次运行我的应用程序时出现奇异矩阵错误,但我不知道导致问题的原因。代码如下,请有人帮助我。任何回答的人我都提前感谢。
#import "Squirrel.h"
@interface Squirrel ()
@end
@implementation Squirrel
-(void)Scoring{
ScoreNumber = ScoreNumber + AddedScore;
AddedScore = AddedScore - 1;
if (AddedScore < 0){
AddedScore = 0;
}
Score.text=[NSString stringWithFormat:@"Score: %i", ScoreNumber];
}
-(void)Gameover{
Acorn1.hidden=YES;
Branch1.hidden=YES;
}
-(void)Losing{
if(CGRectContainsRect(Sammy.frame, Acorn1.frame)){
AddedScore=1;
RandomPosition=arc4random()%248;
RandomPosition=RandomPosition+36;
Acorn1.center=CGPointMake(RandomPosition, 88);
}
if(CGRectContainsRect(Sammy.frame, Acorn2.frame)){
AddedScore=1;
/*RandomPosition=arc4random()%248;
RandomPosition=RandomPosition+36;
Acorn2.center=CGPointMake(RandomPosition, 56);*/
}
if(CGRectContainsRect(Sammy.frame, Acorn3.frame)){
AddedScore=1;
}
if(CGRectContainsRect(Sammy.frame, Branch1.frame)){
//[self Gameover];
AddedScore=1;
}
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
SquirrelLeft=NO;
SquirrelRight=NO;
StopSideMovement=YES;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self.view];
if(point.x < 160){
SquirrelLeft=YES;
}
else{
SquirrelRight=YES;
}
}
-(void)moving{
Sammy.center = CGPointMake(Sammy.center.x + SideMovement, 366);
if(Acorn1.center.y > 463){
RandomPosition = arc4random() %248;
RandomPosition = RandomPosition + 36;
Acorn1.center = CGPointMake(RandomPosition, 16);
}
if(Acorn2.center.y > 463){
RandomPosition = arc4random() %248;
RandomPosition = RandomPosition + 36;
Acorn2.center = CGPointMake(RandomPosition, 16);
}
if(Acorn3.center.y > 463){
RandomPosition = arc4random() %248;
RandomPosition = RandomPosition + 36;
Acorn3.center = CGPointMake(RandomPosition, 16);
}
if(Branch1.center.y > 463){
RandomPosition = arc4random() %248;
RandomPosition = RandomPosition + 36;
Branch1.center = CGPointMake(RandomPosition, 16);
}
if(Branch2.center.y > 463){
RandomPosition = arc4random() %248;
RandomPosition = RandomPosition + 36;
Branch2.center = CGPointMake(RandomPosition, 16);
}
if(Branch3.center.y > 463){
RandomPosition = arc4random() %248;
RandomPosition = RandomPosition + 36;
Branch3.center = CGPointMake(RandomPosition, 16);
}
if(Branch4.center.y > 463){
RandomPosition = arc4random() %248;
RandomPosition = RandomPosition + 36;
Branch4.center = CGPointMake(RandomPosition, 16);
}
if(SquirrelLeft == YES){
SideMovement = SideMovement-0.8;
if(SideMovement < -5){
SideMovement = -5;
}
}
if(SquirrelRight ==YES){
SideMovement = SideMovement + 0.8;
if(SideMovement > 5){
SideMovement = 5;
}
}
if(StopSideMovement == YES && SideMovement>0){
SideMovement = SideMovement - 0.1;
if (SideMovement < 0){
SideMovement = 0;
StopSideMovement=NO;
}
}
if (StopSideMovement == YES && SideMovement<0){
SideMovement=SideMovement+0.1;
if(SideMovement>0){
SideMovement=0;
StopSideMovement=NO;
}
}
if(AddedScore == 1 && CGRectContainsRect(Sammy.frame, Acorn1.frame)){
Branch1.center = CGPointMake(Branch1.center.x, Branch1.center.y + 6);
Branch2.center = CGPointMake(Branch2.center.x, Branch2.center.y + 6);
Branch3.center = CGPointMake(Branch3.center.x, Branch3.center.y + 6);
Branch4.center = CGPointMake(Branch4.center.x, Branch4.center.y + 6);
Acorn2.center = CGPointMake(Acorn2.center.x, Acorn2.center.y + 5);
Acorn3.center = CGPointMake(Acorn3.center.x, Acorn3.center.y + 5);
}
}
-(void)moveBranch1{
Branch1.center = CGPointMake(Branch1.center.x, Branch1.center.y + 6);
}
-(void)moveBranch2{
Branch2.center = CGPointMake(Branch2.center.x, Branch2.center.y + 6);
}
-(void)moveBranch3{
Branch3.center = CGPointMake(Branch3.center.x, Branch3.center.y + 6);
}
-(void)moveBranch4{
Branch4.center = CGPointMake(Branch4.center.x, Branch4.center.y + 6);
}
-(void)moveAcorn1{
Acorn1.center = CGPointMake(Acorn1.center.x, Acorn1.center.y + 5);
}
-(void)moveAcorn2{
Acorn2.center = CGPointMake(Acorn2.center.x, Acorn2.center.y + 5);
}
-(void)moveAcorn3{
Acorn3.center = CGPointMake(Acorn3.center.x, Acorn3.center.y + 5);
}
- (IBAction)Start:(id)sender {
Acorn1.hidden=NO;
Acorn2.hidden=NO;
Acorn3.hidden=NO;
Branch1.hidden=NO;
Branch2.hidden=NO;
Branch3.hidden=NO;
Branch4.hidden=NO;
Title.hidden=YES;
Mu.hidden=YES;
Main.hidden=YES;
Start.hidden=YES;
HighScore.hidden=YES;
How.hidden=YES;
MoveAcorn1 = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(moveAcorn1) userInfo:nil repeats:YES];
MoveAcorn2 = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(moveAcorn2) userInfo:nil repeats:YES];
MoveAcorn3 = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(moveAcorn3) userInfo:nil repeats:YES];
MoveBranch1 = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(moveBranch1) userInfo:nil repeats:YES];
MoveBranch2 = [NSTimer scheduledTimerWithTimeInterval:0.09 target:self selector:@selector(moveBranch2) userInfo:nil repeats:YES];
MoveBranch3 = [NSTimer scheduledTimerWithTimeInterval:0.09 target:self selector:@selector(moveBranch3) userInfo:nil repeats:YES];
MoveBranch4 = [NSTimer scheduledTimerWithTimeInterval:0.09 target:self selector:@selector(moveBranch4) userInfo:nil repeats:YES];
Moving = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(moving) userInfo:nil repeats:YES];
losing = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(Losing) userInfo:nil repeats:YES];
Scoring = [NSTimer scheduledTimerWithTimeInterval:0.00000001 target:self selector:@selector(Scoring) userInfo:nil repeats:YES];
RandomPosition=arc4random()%248;
RandomPosition=RandomPosition+36;
Acorn1.center=CGPointMake(RandomPosition, 88);
RandomPosition=arc4random()%248;
RandomPosition=RandomPosition+36;
Acorn2.center=CGPointMake(RandomPosition, 56);
RandomPosition=arc4random()%248;
RandomPosition=RandomPosition+36;
Acorn3.center=CGPointMake(RandomPosition, 22);
RandomPosition=arc4random()%248;
RandomPosition=RandomPosition+36;
Branch1.center=CGPointMake(RandomPosition, 35);
RandomPosition=arc4random()%248;
RandomPosition=RandomPosition+36;
Branch2.center=CGPointMake(RandomPosition, 25);
RandomPosition=arc4random()%248;
RandomPosition=RandomPosition+36;
Branch3.center=CGPointMake(RandomPosition, 77);
RandomPosition=arc4random()%248;
RandomPosition=RandomPosition+36;
Branch4.center=CGPointMake(RandomPosition, 43);
}
- (void)viewDidLoad {
Acorn1.hidden=YES;
Acorn2.hidden=YES;
Acorn3.hidden=YES;
Branch1.hidden=YES;
Branch2.hidden=YES;
Branch3.hidden=YES;
Branch4.hidden=YES;
[super viewDidLoad];