Форум программистов, компьютерный форум CyberForum.ru

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
DonMidNight
5 / 5 / 0
Регистрация: 06.11.2013
Сообщений: 37
#1

Кажется что приложение работает неверно - Программирование iOS/iPhone

19.03.2014, 23:58. Просмотров 439. Ответов 6
Метки нет (Все метки)

Доброго времени суток. Написал простенький теннис. Но мне кажется что что то не так работает, а именно при начале игры мяч то со скоростью света летин, то еле еле движется, Порой мячик вообще принимает 1 траекторию и движется по ней (опять же может с бешеной скоростью а может и еле еле) ну и + еще компьютер победить очень сложно. Вот коды ко всем этим движениям

Старт игры (скорость мяча разная)
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-(IBAction)StartGame:(id)sender {
    
    StartGame.hidden = YES;
    Exit.hidden = YES;
    
    y = arc4random() % 11;
    y = y - 4;
    x = arc4random() % 11;
    x = x - 4;
    if (y==0) {
        y = 1;
    }
        if (x==0) {
            x = 1;
        }
   timer = [NSTimer scheduledTimerWithTimeInterval:0.01 target: self selector: @selector(BallMovement) userInfo: nil repeats:YES];
}
Движение доски компьютера
Objective-C
1
2
3
4
5
6
7
8
-(void) ComputerMovement {
    if (Computer.center.x > Ball.center.x) {
        Computer.center = CGPointMake(Computer.center. x - 2, Computer.center. y );
    }
        
        if (Computer.center.x < Ball.center.x) {
            Computer.center = CGPointMake(Computer.center. x + 2, Computer.center. y );
        }
Движение мяча

Objective-C
1
2
3
4
5
6
7
8
9
10
-(void) BallMovement {
    [self ComputerMovement];
    [self Bump];
    
    
    Ball.center = CGPointMake(Ball.center.x + x , Ball.center. y + y );
    if (Ball.center.x < 10) {
        x = 0 - x; }
    if (Ball.center.x > 310) {
        x = 0 - x;

Отскоки мяча
Objective-C
1
2
3
4
5
6
7
8
9
10
-(void) Bump {
    if (CGRectIntersectsRect(Ball.frame, Gamer.frame)) {
        y = arc4random() % 8;
        y = 0 - y;
    }
    
    if (CGRectIntersectsRect(Ball.frame, Computer.frame)) {
        y = arc4random() % 8;
       // y = 0 + y;
    }
Или я просто придираюсь? Заранее благодарю
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2014, 23:58     Кажется что приложение работает неверно
Посмотрите здесь:

Вход в приложение
Обновить приложение в AppStore
Objective-C Во что компилируется Objective-C приложение
Приложение будильник
Сбилдить приложение
Многоэкранное приложение
Мультиязычное приложение
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vorona
Peace 2 all shining faces
666 / 528 / 45
Регистрация: 05.03.2010
Сообщений: 1,271
20.03.2014, 00:25     Кажется что приложение работает неверно #2
какая-то куча рендомов...
DonMidNight
5 / 5 / 0
Регистрация: 06.11.2013
Сообщений: 37
20.03.2014, 09:10  [ТС]     Кажется что приложение работает неверно #3
А разьве не рандомно все должно быть?
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
20.03.2014, 11:06     Кажется что приложение работает неверно #4
У меня глаза выпали от того, что вы написали.
Шарик ведет себя неадекватно, ибо не адекватен ваш код.
Вот чего например вы хотите добиться этим:
Objective-C
1
2
3
4
if (CGRectIntersectsRect(Ball.frame, Gamer.frame)) {
        y = arc4random() % 8;
        y = 0 - y;
    }
Цитата Сообщение от DonMidNight Посмотреть сообщение
А разьве не рандомно все должно быть?
Что-то может быть рандомным, но точно не ВСЕ, как у вас.
DonMidNight
5 / 5 / 0
Регистрация: 06.11.2013
Сообщений: 37
20.03.2014, 11:23  [ТС]     Кажется что приложение работает неверно #5
Да вот и я понимаю что что то неправильно, да вот не могу додумать что именно, поэтому и обратился к вам на форум, чтобы вы помогли научиться мне понимать и разбирать собственные ошибки. Натолкните меня на правильный путь. И как мне нужно поправить код. А в выше указанном вами куске кода , я намеривался определить коснулся ли мячик ракетки или нет
Victorianec
20 / 20 / 6
Регистрация: 09.01.2014
Сообщений: 118
20.03.2014, 12:35     Кажется что приложение работает неверно #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
DonMidNight, Мне кажется Вам нужно пересмотреть именно математическую модель Вашей игры. Например высчитывать скорость мяча как произведение текущей скорости мяча на коэффициент от скорости движения ракетки во время их столкновения или что-то подобное. На старте я бы выставил скорость движения всегда одинаковую. Отскок мяча тоже стоило бы сделать с учетом хоть простейших законов физики.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2014, 13:12     Кажется что приложение работает неверно
Еще ссылки по теме:

Приложение с множеством контроллеров
От Apple приходит ответ, что приложение крашится
Приложение, основанное на браузере
Почему в iPhone не работает нажатие на телефонный номер, а в Android работает?
Опубликовать приложение в AppStore

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
DonMidNight
5 / 5 / 0
Регистрация: 06.11.2013
Сообщений: 37
20.03.2014, 13:12  [ТС]     Кажется что приложение работает неверно #7
Спасибо буду додумывать)
Yandex
Объявления
20.03.2014, 13:12     Кажется что приложение работает неверно
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru