加速度計を使用してiPhone用のアプリケーションを
開発する方法は、すでに知っています。 今では、シミュレータでテストする方法を学ぶ必要があります。
この必要性は、いくつかの理由で発生する可能性があります。iPhoneがないか、
iPhone Developer Programに参加していないため、実際のデバイスで実行する方法がありません。
シミュレータで加速度計を使用するには、次のものが必要です。
- 加速度計(MacBook、MacBook Pro、MacBook Air)が組み込まれたMac。その測定値はシミュレーターに送信されます。
- Unimotion-組み込みのMac加速度計から測定値を取得するプログラム
- Accelerometer Simulatorは、 実際のiPhone iPhone加速度計からMacに測定値を送信するアプリケーションです。 (iPhoneにインストールされているアプリケーションと、テスト対象のアプリケーションに接続するクラスの2つの部分で構成されています。)
sendaccsim.py
Simulatorで使用するためにUnimotionからの読み取り値を変換するsendaccsim.py
スクリプト:
import sys, socket, time, traceback
kCFAbsoluteTimeIntervalSince1970 = 978307200.0 #from CFDate.c
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(( '' ,0))
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
while 1:
try :
line = sys.stdin.readline()[:-1] # read line and strip EOL
fields = line.split() # split around space character
floatfields = map(float , fields) # convert to floats
# transform coordinate system, from Sudden Motion Sensor to UIAcceleration format
x, y, z = map( lambda x: -1 * x, floatfields)
# change epoch to be compatible with CFAbsoluteTimeGetCurrent()
currentTime = time.time() - kCFAbsoluteTimeIntervalSince1970
accdata = ',' .join( map(str ,( 'ACC: 0' ,currentTime,x,y,z)))
sock.sendto(accdata, ( '<broadcast>' , 10552))
except ( ValueError, KeyboardInterrupt ):
sock.close()
sys.exit(-1)
except:
traceback.print_exc()
開始するには、Unimotionを構築する必要があります。 C sourceforge.netは、プログラムでアーカイブをダウンロードして解凍します。 解凍したフォルダーに移動して
make
を実行
make
、
motion
と
libUniMotion.dylib
を含む
bin
フォルダーが
libUniMotion.dylib
ます。
sendaccsim.py
をコピーして実行します。
$ ./motion -f 17 | python sendaccsim.py
AppDelegate.h
Simulatorから
AppDelegate.h
、
AppDelegate.h
プロジェクトに接続します。
#import "AccelerometerSimulation.h"
シミュレータでアプリケーションを起動し、Macを左右に傾けてiPhoneの加速度計をエミュレートします:)。
-
無料翻訳
iPhone SimulatorでMacの加速度計を使用します。
たとえば、ゲームTweejumpをMacで直接プレイできます。 GitHubの拡張部分で検出され、加速度計を使用してプレーヤーを制御するためにのみ選択されました。