Sakura-Fly 开源项目教程
1. 项目的目录结构及介绍
Sakura-Fly/
├── SakuraFly/
│ ├── Assets.xcassets/
│ ├── GameScene.swift
│ ├── GameViewController.swift
│ ├── Info.plist
│ ├── main.swift
│ ├── SakuraFly.entitlements
│ ├── SakuraFly.xcodeproj
│ └── SakuraFlyTests/
├── .gitignore
├── .travis.yml
├── LICENSE
├── README.md
└── _config.yml
- SakuraFly/: 项目的主要代码目录。
- Assets.xcassets/: 存放项目的资源文件,如图片、声音等。
- GameScene.swift: 游戏场景的主要逻辑文件。
- GameViewController.swift: 游戏视图控制器,负责游戏界面的显示和交互。
- Info.plist: 项目的配置文件,包含应用的元数据。
- main.swift: 项目的入口文件。
- SakuraFly.entitlements: 应用的权限配置文件。
- SakuraFly.xcodeproj: Xcode 项目文件。
- SakuraFlyTests/: 项目的测试代码目录。
- .gitignore: Git 忽略文件配置。
- .travis.yml: Travis CI 配置文件。
- LICENSE: 项目的开源许可证文件。
- README.md: 项目的说明文档。
- _config.yml: 项目的配置文件。
2. 项目的启动文件介绍
项目的启动文件是 main.swift
,它是 Swift 项目的入口点。在这个文件中,通常会初始化应用的运行环境,并启动应用的主循环。
import UIKit
import SpriteKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// 初始化窗口
window = UIWindow(frame: UIScreen.main.bounds)
// 设置根视图控制器
let viewController = GameViewController()
window?.rootViewController = viewController
window?.makeKeyAndVisible()
return true
}
}
3. 项目的配置文件介绍
- Info.plist: 这是一个重要的配置文件,包含了应用的元数据,如应用的名称、版本号、权限声明等。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>Sakura Fly</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
</dict>
</plist>
- **