Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

19.03.2014, 23:58. Просмотров 458. Ответов 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;
    }
Или я просто придираюсь? Заранее благодарю
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2014, 23:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Кажется что приложение работает неверно (Программирование iOS):

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

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

Нужно мобильное приложение. Что требовать от разработчиков? - Программирование
Всем привет! Опытные разработчики помогите советом! Мне нужно приложение, хочу заказать чтобы сделали, но опасаюсь что прокатят...

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

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

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

6
Vorona
Peace 2 all shining faces
669 / 531 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
20.03.2014, 00:25 #2
какая-то куча рендомов...
0
DonMidNight
5 / 5 / 0
Регистрация: 06.11.2013
Сообщений: 37
20.03.2014, 09:10  [ТС] #3
А разьве не рандомно все должно быть?
0
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 Посмотреть сообщение
А разьве не рандомно все должно быть?
Что-то может быть рандомным, но точно не ВСЕ, как у вас.
0
DonMidNight
5 / 5 / 0
Регистрация: 06.11.2013
Сообщений: 37
20.03.2014, 11:23  [ТС] #5
Да вот и я понимаю что что то неправильно, да вот не могу додумать что именно, поэтому и обратился к вам на форум, чтобы вы помогли научиться мне понимать и разбирать собственные ошибки. Натолкните меня на правильный путь. И как мне нужно поправить код. А в выше указанном вами куске кода , я намеривался определить коснулся ли мячик ракетки или нет
0
Victorianec
20 / 20 / 6
Регистрация: 09.01.2014
Сообщений: 118
20.03.2014, 12:35 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
DonMidNight, Мне кажется Вам нужно пересмотреть именно математическую модель Вашей игры. Например высчитывать скорость мяча как произведение текущей скорости мяча на коэффициент от скорости движения ракетки во время их столкновения или что-то подобное. На старте я бы выставил скорость движения всегда одинаковую. Отскок мяча тоже стоило бы сделать с учетом хоть простейших законов физики.
1
DonMidNight
5 / 5 / 0
Регистрация: 06.11.2013
Сообщений: 37
20.03.2014, 13:12  [ТС] #7
Спасибо буду додумывать)
0
20.03.2014, 13:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2014, 13:12
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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