Đối với khách hàng tôi đã phát triển một ứng dụng iOS + Android
sử dụng Cordova (PhoneGap)
cho giao diện người dùng. Bây giờ, như một bản cập nhật cho ứng dụng này, tôi đang cố gắng thêm một trò chơi được viết bằng Haxe. Ban đầu trò chơi được viết cho số Flash target
, nhưng tôi đã cập nhật trò chơi để làm việc với các mục tiêu C++
cho Android and iOS
.Chạy Haxe từ ứng dụng iOS - lỗi hxRunLibrary()
Trên Android, thật dễ dàng để tích hợp ứng dụng này với ứng dụng Cordova
sử dụng (phần Haxe chạy dưới dạng hoạt động riêng), nhưng tôi gặp phải một số sự cố khi đạt được kết quả tương tự trên iOS.
Cho đến nay tôi đã cố gắng bao gồm tất cả hxcpp
mã được tạo trong dự án của tôi (giống như cách NME thiết lập dự án XCode khi bạn thực hiện "i xây dựng") và tôi gọi số hxRunLibrary()
từ mã của mình khi Tôi muốn trò chơi chạy.
Vấn đề là hxRunLibrary()
dường như muốn tạo UIApplication
dụ riêng của mình, mà không thành công với các lỗi sau, kể từ khi ứng dụng chính của tôi vẫn đang chạy một thể hiện:
*** Assertion failure in void UIApplicationInstantiateSingleton(Class)(), /SourceCache/UIKit_Sim/UIKit-2380.17/UIApplication.m:2037
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'There can only be one UIApplication instance.'
Tôi nghĩ rằng nó có thể có một cái gì đó để làm với SDL, mà Haxe sử dụng cho đồ họa. Từ những gì tôi hiểu SDL cần phải chạy từ các chức năng chính của ứng dụng, mà tạo ra một cuộc xung đột với Cocoa mà cũng cần phải chạy từ chức năng chính.
Có cách nào dễ dàng để giải quyết vấn đề này không? Tôi đã xem xét các nguồn hxcpp, nhưng không thể tìm thấy mã liên quan UIApplication
hoặc bất kỳ mã nhập nào cho SDL.
Có lẽ ai đó có thể chỉ cho tôi đúng hướng. Cảm ơn!