Skip to content

bighardperson/aircraft-war-android

Repository files navigation

Aircraft War Android

Aircraft War Android gameplay preview

Android Java Gradle SQLite Status

一个使用原生 Android Java 实现的竖屏飞机大战游戏。项目从课堂版射击游戏继续扩展,加入了多难度战斗、Boss 阶段、道具技能、连击与成就、本地 SQLite 排行榜、在线中心、系统诊断、音频管理、高帧率选项和局域网联机雏形。

Project Snapshot

维度 内容
核心体验 拖动英雄机移动,躲避弹幕,击落敌机,拾取道具,挑战 Boss
技术实现 Android SurfaceView 主循环、Java 面向对象建模、SQLite、NSD 局域网发现
工程规模 150+ 个源码与资源文件,覆盖 Activity、游戏循环、实体、音频、网络、排行榜
适合展示 Android 课程设计、面向对象设计模式、小游戏工程化、移动端功能扩展

Highlights

模块 亮点
战斗系统 简单、普通、困难三档难度,普通敌机、精英敌机、超级精英、Boss、自爆机、狙击机、坦克机等敌机类型
道具技能 回血、炸弹、火力增强、护盾、散射、激光等道具,配合闪避和爆炸能力增强节奏
反馈表现 连击统计、成就解锁、粒子爆炸、屏幕震动、Boss 血条、敌机血条和阶段变化
数据记录 使用 SQLite 保存本地战绩,支持按分数、时间和记录 ID 排序
在线中心 网络健康检查、演示在线榜单、战区情报、本地最佳战绩上传演示
系统诊断 应用内检查音效、BGM、网络状态和本地数据快照
局域网联机 基于 Android NSD 发现房间,提供创建房间、加入房间和基础网络会话能力

Screens & Flow

flowchart LR
    Main["MainActivity<br/>主菜单与难度入口"] --> Game["GameActivity<br/>游戏承载与结算"]
    Main --> Rank["RankActivity<br/>本地排行榜"]
    Main --> Online["OnlineActivity<br/>在线中心"]
    Main --> Diagnostics["DiagnosticsActivity<br/>系统诊断"]
    Main --> Multiplayer["MultiplayerActivity<br/>局域网联机"]
    Game --> Loop["SurfaceView Game Loop<br/>刷新 / 碰撞 / 绘制"]
    Loop --> Aircraft["Aircraft & Bullet<br/>飞机与子弹"]
    Loop --> Props["Props & Abilities<br/>道具与技能"]
    Loop --> Effects["Effects & Audio<br/>粒子与音效"]
Loading

Tech Stack

层级 技术
App Android Gradle Plugin 9.1.0, Java 11, AppCompat, Material Components, ConstraintLayout
Game Runtime SurfaceView, 独立刷新线程, 碰撞检测, 资源加载与绘制
Data SQLite 本地排行榜, DAO 风格数据访问
Network Android NSD, 局域网房间发现与基础会话
Test JUnit, Android instrumented test scaffold

Directory Map

app/src/main/java/edu/hitsz/
├── MainActivity.java              # 主菜单、难度入口、设置入口
├── GameActivity.java              # 游戏承载 Activity 与结算流程
├── RankActivity.java              # 本地排行榜页面
├── OnlineActivity.java            # 在线中心页面
├── DiagnosticsActivity.java       # 音频、网络、本地数据诊断页
├── MultiplayerActivity.java       # 局域网联机入口
├── application/                   # SurfaceView 游戏主循环、资源加载
├── aircraft/                      # 英雄机与敌机模型
├── bullet/                        # 子弹模型
├── prop/                          # 道具模型
├── factory/                       # 敌机与道具工厂
├── difficulty_setting/            # 难度策略
├── BulletStrategy/                # 射击策略
├── record/                        # SQLite 排行榜持久化
├── online/                        # 演示在线服务与榜单映射
├── network/                       # NSD 与局域网网络会话
├── audio/                         # 游戏音频管理
├── combo/                         # 连击管理
├── achievement/                   # 成就系统
├── ability/                       # 技能能力
└── effect/                        # 粒子与爆炸效果

Design Notes

  • 工厂模式:统一创建不同敌机和道具,降低主循环中的条件分支复杂度。
  • 策略模式:拆分直射、散射、环形、激光等射击方式,让敌机与英雄机可以灵活切换火力。
  • DAO 思路:通过 DAO 接口隔离排行榜存储实现,避免 UI 直接依赖 SQLite 细节。
  • 观察者式爆炸处理:爆炸效果与游戏对象清理解耦,方便扩展新的反馈表现。
  • SurfaceView 主循环:独立线程负责刷新、碰撞检测、绘制和游戏状态推进。

Run Locally

使用 Android Studio 打开项目根目录,等待 Gradle 同步完成后运行 app 模块。

也可以在终端构建调试包:

./gradlew assembleDebug

运行单元测试:

./gradlew testDebugUnitTest

Release Signing

仓库不会提交真实签名密钥。需要构建 release 包时,在项目根目录创建本地文件 keystore.properties

storeFile=app/your-release-key.jks
storePassword=your-store-password
keyAlias=your-key-alias
keyPassword=your-key-password

然后执行:

./gradlew assembleRelease

Roadmap

  • 完善局域网联机同步协议、房间状态和断线重连。
  • 将在线中心从演示接口替换为正式后端服务。
  • 补充更多截图、短视频演示和 Release APK。
  • 为核心游戏循环、排行榜和网络模块增加更系统的测试。

Notes

在线中心目前使用公开演示接口完成网络检测、榜单映射和上传演示,不是正式生产后端。局域网联机能力适合同一 WiFi 下的课程演示和功能验证,后续可以继续扩展同步协议、房间状态和断线重连。

About

Native Android aircraft battle game with multi-difficulty combat, SQLite leaderboard, audio, diagnostics, online center, and LAN multiplayer demo.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages