115 lines
3.9 KiB
Swift
115 lines
3.9 KiB
Swift
//
|
|
// FirstBootGuide.swift
|
|
// Hthik
|
|
//
|
|
// Created by aaa on 2024/6/6.
|
|
// Copyright © 2024 Hthik. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
import UIKit
|
|
let initGameArr:[String] = ["lx_Pong","lx_AirCombat","lx_GBAkk"]
|
|
|
|
class FirstBootGuide:UIViewController {
|
|
|
|
lazy var bgImgView:UIImageView = {
|
|
let imgView = UIImageView()
|
|
imgView.contentMode = .scaleAspectFill
|
|
imgView.image = UIImage(named: "new_fbg_bg")
|
|
return imgView
|
|
}()
|
|
|
|
lazy var topImgView:UIImageView = {
|
|
let imgView = UIImageView()
|
|
imgView.contentMode = .scaleAspectFit
|
|
imgView.image = UIImage(named:"new_fbg_title")
|
|
return imgView
|
|
}()
|
|
|
|
lazy var bottomBtn:UIButton = {
|
|
let btn = UIButton()
|
|
btn.addTarget(self, action: #selector(enterNow), for: .touchUpInside)
|
|
btn.setImage(UIImage(named: "new_fbg_guidebtn"), for: .normal)
|
|
return btn
|
|
}()
|
|
|
|
lazy var shadowImgView:UIImageView = {
|
|
let imgView = UIImageView()
|
|
imgView.contentMode = .scaleAspectFill
|
|
imgView.image = UIImage(named: "new_fbg_shadow")
|
|
return imgView
|
|
}()
|
|
|
|
lazy var tipImgView:UIImageView = {
|
|
let imgView = UIImageView()
|
|
imgView.contentMode = .scaleAspectFit
|
|
imgView.image = UIImage(named: "new_fbg_tips")
|
|
return imgView
|
|
}()
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
self.view.addSubview(bgImgView)
|
|
bgImgView.frame = self.view.bounds
|
|
self.view.addSubview(topImgView)
|
|
topImgView.frame = CGRect(x: 61, y: 59, width: UIScreen.main.bounds.size.width - 122, height: 79)
|
|
self.view.addSubview(shadowImgView)
|
|
shadowImgView.frame = CGRect(x: 0, y: UIScreen.main.bounds.size.height - 310, width: UIScreen.main.bounds.size.width, height: 310)
|
|
|
|
self.view.addSubview(bottomBtn)
|
|
bottomBtn.frame = CGRect(x: 50, y: UIScreen.main.bounds.size.height - 110, width: UIScreen.main.bounds.size.width - 100, height: 72)
|
|
// self.view.backgroundColor = .orange
|
|
initGameArr.enumerated().forEach { index,name in
|
|
setupGames(name,index == 0)
|
|
print("正在导入游戏index:\(index) name:\(name)")
|
|
}
|
|
|
|
}
|
|
|
|
//进入游戏
|
|
@objc func enterNow(){
|
|
self.dismiss(animated: false)
|
|
}
|
|
|
|
func setupGames(_ name:String,_ isShow:Bool){
|
|
let path = Bundle.main.path(forResource: name, ofType: "gba")
|
|
let url = URL(fileURLWithPath: path!)//URL(string: )
|
|
let gameURLs = [url]
|
|
DatabaseManager.shared.importGames(at: Set(gameURLs)) { [weak self] (games, errors) in
|
|
if games.count > 0 && isShow
|
|
{
|
|
print("Imported Games:", games.map { $0.name })
|
|
self?.loadGameView(games.first)
|
|
}
|
|
}
|
|
}
|
|
|
|
func loadGameView(_ game:Game?) {
|
|
let sb = UIStoryboard(name: "Main", bundle: Bundle.main)
|
|
let vc = sb.instantiateViewController(withIdentifier: "zzhgameViewController") as! GameViewController
|
|
self.view.addSubview(vc.view)
|
|
self.addChild(vc)
|
|
vc.view.frame = CGRectMake(0, 116, self.view.frame.size.width - 0, self.view.frame.size.height - 116 - 40)
|
|
vc.zbgImgView.isHidden = true
|
|
vc.view.backgroundColor = .clear
|
|
self.view.bringSubviewToFront(shadowImgView)
|
|
self.view.bringSubviewToFront(bottomBtn)
|
|
|
|
NotificationCenter.default.post(name: NSNotification.Name("kzzhAddGameToAppNotificationKey"), object: nil)
|
|
// DispatchQueue.main.asyncAfter(deadline: .now()+0.3, execute: {
|
|
vc.game = game
|
|
// 必须同步否则会有黑闪
|
|
vc.emulatorCore?.start()
|
|
// vc.emulatorCore?.pause()
|
|
// })
|
|
|
|
self.view.addSubview(tipImgView)
|
|
tipImgView.frame = CGRectMake((self.view.frame.size.width - 150)*0.5 - 44, 460, 280, 170)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|