Dựa trên nhận xét của LearnCocos2D, tôi đã xem xét ObjectAL. Đối với những người không quen thuộc với ObjectAL
, nó được thiết kế để trở thành một giao diện đơn giản và trực quan cho OpenAL
và AVAudioPlayer
. Bạn có thể tải về và tìm hiểu thêm thông tin về nó ở đây ...
http://kstenerud.github.io/ObjectAL-for-iPhone/index.html
Đối với clip âm thanh của tôi, tôi sử dụng từ 3 đến 5 dài tập tin âm thanh .caf thứ hai của một âm thanh động cơ. ObjectAL
cho phép tôi liên tục lặp lại và thay đổi độ cao của tệp âm thanh. Bằng cách thay đổi độ cao, tôi có thể mô phỏng động cơ ở các tốc độ khác nhau.
Dưới đây là một mẫu mã ...
Hai biến thành viên hoặc bạn có thể cài đặt chúng như là tài sản ...
ALBuffer *_buffer;
ALSource *_source;
Phương pháp để khởi tạo hiệu ứng âm thanh động cơ ...
- (void)initializeSound
{
// We'll let OALSimpleAudio deal with the device and context.
// Since we're not going to use it for playing effects, don't give it any sources.
[OALSimpleAudio sharedInstance].reservedSources = 0;
_source = [ALSource source];
_buffer = [[OpenALManager sharedInstance] bufferFromFile:@"EngineSound.caf"];
_source.pitch = 0.30; // Start at low pitch for engine idle.
[_source play:_buffer loop:YES];
}
Bên trong phương thức cập nhật của tôi SKScene
Tôi điều chỉnh độ cao theo tốc độ.
- (void)update:(CFTimeInterval)currentTime
{
CGFloat enginePitch;
// Code to calculate desired enginePitch value based on vehicle speed.
_source.pitch = enginePitch;
}
Do một lỗi bị cáo buộc trong SpriteKit
, tôi đã có một vấn đề với một lỗi gpus_ReturnNotPermittedKillClient
EXC_BAD_ACCESS
khi đóng ứng dụng. Tôi đã tìm thấy bản sửa lỗi tại đây ...
https://stackoverflow.com/a/19283721/3148272
Phát triển trượt là cực kỳ thô sơ. Bạn có thể muốn nhìn vào ObjectAL. – LearnCocos2D
Cập nhật mới nhất của Mục tiêu là 2013-04-16. Mức độ ổn định của nó với các phiên bản iOS mới hơn? – salocinx