Заменить вход акселератора сенсорным экраном - PullRequest
0 голосов
/ 18 июля 2010

Я работаю над игрой для iPhone, которая использует акселерометр для управления. У меня пока нет пользователя программы Apple Developer Program, поэтому я не могу проверить его на своем устройстве, поэтому я пытаюсь дать игре некоторые значения акселерометра в зависимости от того, где я нажимаю на экран.

Что я пытался сделать: Я попытался установить середину экрана в качестве средней точки, тогда смещение ответвления от средней точки было бы XY акселерометра. Я знаю, что эти значения будут больше 1, и что мне нужны значения от 1 до -1, поэтому я попытался сделать много вещей, чтобы заставить его работать. Я часто был рядом, но я не мог заставить его работать.

Кроме того, я хочу, чтобы был предел, если расстояние от средней точки больше 100, (вы знаете, sqrt (dx dx + dy dy), тогда это будет 100, а не как 193 или что-то.

Вот мой код:

- (void) ccTouchesMoved: (NSSet *)touches withEvent: (UIEvent *)event
{
    if(IS_SIMULATOR)
    {
        for( UITouch *touch in touches ) {
            CGPoint location = [[CCDirector sharedDirector] convertToGL: [touch locationInView: [touch view]]];
            CGFloat dx = location.x - middleOfScreen.x;
            CGFloat dy = location.y - middleOfScreen.y;
            CGFloat d = sqrtf(dx*dx+dy*dy);
            CGFloat a = atan2(dy, dx);
            CGFloat accX = /*acceleration value x*/
            CGFloat accY = /*acceleration value y*/

            //[mlRef setAcceleration: ccp(accX, accY)];
        }
    }
}

Надеюсь, вы понимаете, чего я хочу, пожалуйста, помогите. :)

Кроме того, прежде чем кто-либо порекомендует его, нет, я не хочу использовать iSimulate, мой домашний интернет не любит его. (

1 Ответ

1 голос
/ 18 июля 2010

Итак, ваш вопрос действительно заключается в том, как нормализовать dx и dy?Просто разделите их на их максимальные значения, которые должны быть 160 для dx и 240 для dy.

В противном случае просто NSLog или printf всех значений и просто проследить значения.Если вы все еще не можете понять это, опубликуйте код регистрации и выведите его за одно касание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...