Июн 10

Мы уже останавливались на воспроизведении коротких звуков в игре/приложении. Теперь пришло время фоновой музыки. iPod допускает воспроизведение одного типа коротких звуков, а вот добавление фоновой музыки его отключает.
Для проигрывания фоновой музыки (т.е. звуков, не ограниченных по длительности 30 с) можно воспользоваться AVAudioPlayer. Нужный код приведен ниже (не забудьте добавить фреймворк “AVFoundation.framework“).

1
2
AVAudioPlayer *myAVsound = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"backgroundMusic" ofType:@"caf"] ] error:NULL];
[myAVsound play];

Задача данного кода сводится к воспроизведению фоновой музыки [backgroundMusic.caf], но только один раз. Проделать это неоднократно поможет “NSTimer“: вызывайте [myAVsound play]. Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (1 голосов, средний: 4.00 из 5)
Загрузка ... Загрузка ...
Комментариев: 3 »

Июн 09

В продолжение темы, рассмотренной в частях 1 и 2, мы будем и дальше работать с созданным ранее проектом, но на этот раз освоим воспроизведение базовых звуков. Для загрузки и озвучки воспользуемся одним из примеров Apple, который можно найти в Apple Developer Network под именем BubbleLevel (к сожалению, прямой ссылки нет, поскольку нужно входить под собственным логином).

Шаг 1

Итак, нам предстоит добавить к проекту аудиофайлы. iPhone дружит с форматом CAF. Использовать его не обязательно, но если решите, о создании и преобразовании CAF-файлов можно прочесть здесь (на английском языке) http://permadi.com/blog/?p=927. В нашем примере я будут работать с одним CAF-файлом и с одним MP3.

Импортируйте оба файла в группу “Resources” точно так же, как это делали это с изображениями (удерживая нажатой клавишу <Ctrl>, щелкните на пиктограмме “Resources” и выберите “Add Existing Files“). Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (Оцените приложение)
Загрузка ... Загрузка ...
Комментариев: 11 »

Июн 08

Объект “UIActivityIndicator“, чаще всего именуемый просто счетчиком, как правило, сообщает пользователю о прогрессе какой-либо операции.

activityindicatorsСчетчики “UIActivityIndicator” бывают трех типов: (слева направо) серый “UIActivityIndicatorViewStyleGray“, белый “UIActivityIndicatorViewStyleWhite“, большой белый “UIActivityIndicatorViewStyleWhiteLarge“.

Задействовать любой из них поможет приведенный ниже код:

1
2
3
UIActivityIndicatorView *myIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]];
myIndicator.center = CGPointMake(160, 240);
myIndicator.hidesWhenStopped = NO;

Как видим, в “initWithFrame” потребности нет, если по размеру большой белый счетчик отличается от малого белого и серого. Вместо этого задается его центральная точка.

Для добавления “UIActivityIndicator” в представление достаточно метода “addSubview“. Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (1 голосов, средний: 5.00 из 5)
Загрузка ... Загрузка ...
Комментариев: 2 »

Июн 08

iPhone / iPod touch позволяет создавать “скриншоты”, сохраняя как изображение содержимое экрана. Многие пользователи даже не догадываются, но для этого достаточно одновременно нажать кнопки home и power. При работе с каталогом Camera Roll или сихронизации фотографий с компьютером каждый скриншот представляет собой изображение 320×480 пикселей.

В этом уроке я расскажу, как с помощью Quartz получать снимки экрана произвольного размера. Под произвольным размером подразумевается возможность сохранять не только часть экрана, но и представление целиком (а не только видимую часть), даже если его размеры превышают 320×480 пикселей.

Для начала к проекту нужно будет добавить фреймворк QuartzCore. Все фреймворки можно найти по следующей ссылке:/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/ iPhoneOSxxx.sdk/System/Library/Frameworks

Выделенная полужирным часть для каждого пользователя будет разной (в моем случае это iPhoneOS2.2.sdk). Кстати, попасть в папку “Frameworks” можно гораздо проще. Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (Оцените приложение)
Загрузка ... Загрузка ...
Нет комментариев »

Июн 07

В этом уроке мы продолжим (первая часть) работу над простейшей игрой типа “космические пришельцы”. Нам предстоит внести в неё значительные изменения, о смысле которых чуть ниже.

Первым делом нужно реструктуризировать CSS код так, чтобы основная часть относящихся к игре объектов размещалась внутри элемента “div“. Так будет проще добавлять игровые элменты — внося их в контейнер “div” посредством “addChild“.

Отредактируйте “index.html” так, как показано ниже:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <title>GameShip</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.6">
    <meta name="apple-mobile-web-app-capable" content="YES">
<link rel="apple-touch-icon" href="Images/WebClipIcon.png">
<link rel="stylesheet" href="main.css">
    <script type="text/javascript" src="Parts/utilities.js" charset="utf-8"></script>
    <script type="text/javascript" src="Parts/setup.js" charset="utf-8"></script>
    <script type="text/javascript" src="main.js" charset="utf-8"></script>
    <script type="text/javascript" src="Parts/Text.js" charset="utf-8"></script>
</head>
<body onload="load();">
  <div id="content">
    <div id="background" class="background"
     ontouchmove="onTouchMoveHandler(event)" ontouchstart="onTouchStartHandler(event)"
     onmousemove="onMouseMoveHandler(event)">
      <div id="playerShip" class="playerShip"
        ontouchmove="onTouchMoveHandler(event)" ontouchstart="onTouchStartHandler(event)"
        onmousemove="onMouseMoveHandler(event)">
      </div>
    </div>
  </div>
</body>
</html>

Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (Оцените приложение)
Загрузка ... Загрузка ...
1 Комментарий »

Июн 06

В продолжении статьи, первую часть которой можно найти здесь мы мы рассмотрим следующие моменты:

  • динамическая загрузка изображения с “UIImageView“,
  • работа с массивами

Шаг 1

Откройте созданный в части 1 проект “Ball“.

Шаг 2

Импортируйте еще одно изображение в группу “Resources” (можно воспользоваться прежним, но гораздо интереснее будет добавить новое).

Шаг 3

Для хранения второго мяча нам потребуется еще одна переменная, поэтому откройте файл “BallViewController.h“. Назовем второй мяч “mBall2” (не самое удачное имя — в реальном приложении лучше иметь дело с массивами).

1
2
3
4
5
6
7
8
9
10
11
#import

@class Ball;

@interface BallViewController : UIViewController {
IBOutlet Ball* mBall;
Ball* mBall2;
}
@property(retain, nonatomic) IBOutlet Ball* mBall;
@property(retain, nonatomic) Ball* mBall2;
@end

Обратите внимание: модификатор “IBOutlet” мы не включаем, поскольку не будем ссылаться на “mBall2” из редактора Interface Builder. Впрочем, вреда от его присутствия не будет. Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (2 голосов, средний: 5.00 из 5)
Загрузка ... Загрузка ...
1 Комментарий »

Июн 05

Dashcode — еще один инструмент Apple iPhone SDK, предназначенный для создания простых приложений. В этом уроке на его примере мы рассмотрим анимацию и интерактивность (подразумевается знакомство с JavaScript и CSS).

В качестве примера возьмем фреймворк игры типа “космические пришельцы”: внизу экрана находится космический корабль, перемещаемый касаниями к экрану.

Создайте новый проект, воспользовавшись шаблоном “Custom“.

Создаем папку “Local Deploy”

Чтобы импортировать изображение корабля, проекту необходимо присвоить статус “Share“, — тогда Dashcode создаст папку размещения. Щелкните по пиктограмме “Share“.

dashcodeshareicon

Появится запрос на место сохранения/размещения. Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (Оцените приложение)
Загрузка ... Загрузка ...
1 Комментарий »

Июн 04

Иногда меня спрашивают, где взять iPhone SDK. Для начала вам понадобится:

  •  компьютер с Mac OS X Leopard;
  • Xcode IDE (инструмент разработки от Apple)
  • iPhone SDK

Сам iPhone для разработки не обязателен — в iPhone SDK предусмотрен симулятор устройства для запуска приложений iPhone. Однако планирующим тестировать приложения и продавать через магазин Apple без него не обойтись.

Нужен ли Мак для работы с Mac OS X Leopard? Я читал, что с этой ОС могут работать некоторые нетбуки, но сам не пробовал и не уверен, что это стоящий способ, особенно для новичков в мак-мире. Желающим попробовать свои силы в нестандартных подходах рекомендую следующие ссылки:
http://gadgets.boingboing.net/2008/12/17/osx-netbook-compatib.html
http://www.engadget.com/2008/10/03/dell-mini-9-hacked-to-run-os-x/
http://gizmodo.com/5156903/how-to-hackintosh-a-dell-mini-9-into-the-ultimate-os-x-netbook

Где взять Xcode?

На моем MacBook Pro ПО Xcode находится на втором установочном диске Mac OS X Leopard. Программа не устанавливается по умолчанию вместе Mac OS X Leopard — попробуйте сделать это с диска.

Есть вариант, что программа уже установлена (обычно это Macintosh HD::Developer::Application). Если такой папки нет, попробуйте воспользоваться Finder. Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (7 голосов, средний: 4.71 из 5)
Загрузка ... Загрузка ...
Комментариев: 3 »

Июн 04

В данной статье будут рассмотрены следующие темы:

  • Работа с трансформацией
  • Работа с “UIImageView
  • Установка интервала для анимации
  • Привязка изображения к объектам
  • Создание производного класса от “UIImageView

Шаг 1

Командой “New Project” создайте новый проект. Выполните “iPhone OS Application -> View-Based Application” и присвойте проекту имя “Ball“.

Шаг 2

Импортируйте изображение в группу “Resources“. При работе с прозрачным png-файлом прозрачность будет сохранена. Я выбрал веселый мяч из [подборки]. Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (1 голосов, средний: 5.00 из 5)
Загрузка ... Загрузка ...
Комментариев: 4 »

Июн 03

Переходы в представлениях способны оживить любое приложение. На текущий момент таких внедренных переходов насчитывается четыре:

  • Отворот вверх (UIViewAnimationTransitionCurlUp) — проверьте на iPhone приложение Maps, хотя это не самый удачный вариант. Все просто: при пролистывании страницы представление отворачивается снизу вверх.
  • Отворот вниз (UIViewAnimationTransitionCurlDown)
  • Переворот справа (UIViewAnimationTransitionFlipFromRight) — точно так, как в приложении Weather при нажатии кнопки “info”; переворот представления вокруг вертикальной оси.
  • Переворот слева (UIViewAnimationTransitionFlipFromLeft)

Код настройки перехода для представления практически ничем не отличается от других разновидностей анимации (см. пример):

1
2
3
4
5
6
7
8
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.5];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:placeholder cache:YES];
[view1 removeFromSuperview];
[placeholder addSubview:view2];
[view2 removeFromSuperview];
[placeholder addSubview:view1];
[UIView commitAnimations];

Представление с именем “placeholder” добавлено как часть “self.view” контроллера представления. “view1” и “view2” — два разных представления, между которыми осуществляется переход (от первого ко второму и наоборот). В процессе анимации / перехода представление переворачивается, скрывая “view1” и открывая “view2“. Находящиеся за ним элементы частично просматриваются. Анимация длится 1,5 с (настройка в “setAnimationDuration“). Продолжить чтение »

1 звезда2 звезд3 звезд4 звезд5 звезд (7 голосов, средний: 4.86 из 5)
Загрузка ... Загрузка ...
Комментариев: 2 »