Я отношусь к Xcode, и я делал небольшую игру для iPhone, предназначенную для забавы, и у меня есть некоторые проблемы, так как некоторые виды спрайтов исчезают, когда они появляются.Коснитесь, чтобы исчезнуть
Коротко: Так в основном я спрайт Нерест на экране каждый раз, через каждые 0,70 секунды и спрайт установлен в глобальной переменной IBOutlet под названием «Круг». Эти круги появляются в случайных местах вокруг экрана iPhone по произвольной ширине и высоте.
В целом
Поэтому в основном я пытаюсь сделать так, чтобы при нажатии на точный круг, она лишь скрывает, что мяч.
Спасибо. Кроме того, извините моды для неаккуратного форматирования.
Вот код в файл, который релевантно:
GameController.m
- (void)viewDidLoad
{
[super viewDidLoad];
self.gameState = GameStatePaused;
circleVerlocity = CGPointMake(CircleSpeedX, CircleSpeedY);
[NSTimer scheduledTimerWithTimeInterval:SpawnSpeed target:self selector:@selector(addCircle:) userInfo:nil repeats:YES];
[NSTimer scheduledTimerWithTimeInterval:BallSpeed target:self selector:@selector(gameLoop) userInfo:nil repeats:YES];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void)addCircle: (NSTimer *) aTimer {
if(gameState == GameStateRunning)
{
UIImageView *Circle1 = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"sprite-small-1.png"]];
self.Circle = Circle1;
CGRect rect = CGRectMake(arc4random() % (274), arc4random() % (532), 50, 50);
[Circle1 setFrame:rect];
[self.view addSubview:Circle1];
}
}
-(void)gameLoop
{
if(gameState == GameStateRunning)
{
Circle.center = CGPointMake(Circle.center.x + circleVerlocity.x, Circle.center.y + circleVerlocity.y);
if(Circle.center.x > self.view.bounds.size.width || Circle.center.x < 0)
{
circleVerlocity.x = -circleVerlocity.x;
}
if(Circle.center.y > self.view.bounds.size.height || Circle.center.y < 0)
{
circleVerlocity.y = -circleVerlocity.y;
}
}else{
if(tapToBegin.hidden)
{
tapToBegin.hidden = NO;
}
}
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
if(gameState == GameStatePaused)
{
tapToBegin.hidden = YES;
gameState = GameStateRunning;
}
if([touch view] == Circle)
{
Circle.hidden = YES;
}
}
Ах ок спасибо !! Где бы вы порекомендовали я поместил материал userintraction в свой код? : P – SirTiggs
Обычно я добавляю его, когда создаю объект, круг в вашем случае. Я также добавляю tapGesture после создания объекта – croigsalvador
О, проигнорируйте это. Ага. Да, у меня есть некоторые проблемы, когда появляются на экране и идут, но некоторые остаются там, и когда я нажимаю на них, они не исчезают? Это странно. – SirTiggs