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

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

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

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

19.03.2014, 23:58. Просмотров 445. Ответов 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     Кажется что приложение работает неверно
Посмотрите здесь:

Во что компилируется Objective-C приложение - Objective-C
Всем привет! Во что компилируется приложение, написанное на Objective-C? Нативный код или промежуточный? Используется ли виртуальная...

От Apple приходит ответ, что приложение крашится - Программирование iOS
Здравствуйте! Некоторое время назад писал одно приложение на Unity. Приложение само по себе не сложное, Unity был выбран чтобы...

Почему в iPhone не работает нажатие на телефонный номер, а в Android работает? - Программирование iOS
Здравствуйте! Почему если открыть на iPhone WEB сайт, на котором отображают телефонный номер для связи и нажать на него то ничего не...

Кажется, что-то с кодировкой - PHP
Пишу сообщение по русски в echo, и вместо него вылазит кракозябра. из-за чего это? и как исправть?

Кажется что-то удалил - Windows XP
Здравствуйте скажите пожалуйста здесь Где пишит Служба доступа к файлам Планировщик пакетов QoS Протокол Интернета (TCP/IP) ...

Почему не работает, ведь кажется правильно! - PHP
Здравствуйте уважаемые форумчане. В переменной $content есть ссылка такого вида: &lt;a...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,276
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     Кажется что приложение работает неверно
Еще ссылки по теме:

radeon hd 4870, кажется, работает неполноценно. - Видеокарты
я хочу понять работает ли моя карта как должна , по моему нет , сравниваю свои числа(частота памяти и пропускная способность) с...

матрица. кажется что легко, но не получилось - Pascal
В гостинице N этажей и на каждом этаже R номеров. В матрице указана стоимость номеров. Определить среднюю стоимость номера для каждого...

Граф. приложение+библиотеки+консольное приложение! Не работает программа без использования консоли. Если использую, то всё прекрасно работает. - Delphi
Ребята нужна помощь,все вроде сделал, но приложение начинает зависать при запуске без использования консоли, если использую ее то все...

Мне кажется, что Chrome OS к Linux не относится - Linux
Уважаемые Администраторы Chrome OS не имеет подобных и разработана Google.Создайте раздел &quot;Альтернативные OS&quot; И пусть все туда...


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

Или воспользуйтесь поиском по форуму:
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