Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/spicycactuar/basic-flight
Basic arcball-like flight simulator
https://github.com/spicycactuar/basic-flight
computer-graphics cpp matrix-transformations opengl qt5 render-loop
Last synced: 18 days ago
JSON representation
Basic arcball-like flight simulator
- Host: GitHub
- URL: https://github.com/spicycactuar/basic-flight
- Owner: SpicyCactuar
- Created: 2024-11-05T02:12:56.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-11-22T20:45:14.000Z (about 2 months ago)
- Last Synced: 2024-11-22T21:30:24.164Z (about 2 months ago)
- Topics: computer-graphics, cpp, matrix-transformations, opengl, qt5, render-loop
- Language: C++
- Homepage:
- Size: 45.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Basic Flight
Simple flight simulation application showcasing basic arcball-like physics and sphere collisions. Built using Qt and rendered with OpenGL.
The flight is simulated using adhoc linear algebra primitives and calculations (e.g.: matrix transformations).
The plane can collide against the floor or lava bombs erupting from a small volcano.![basic-flight](https://github.com/user-attachments/assets/1e457f28-ac3e-4172-8f80-ef44ef4a60af)
## Project Structure
```plaintext
basic-flight/
├── src/ # Source code
├── assets/ # Static assets (.tri and .dem files)
├── basic-flight.pro # QMake project
└── README.md # Project README
```## Build
```bash
qmake
make
```## Run
```bash
bin/basic-flight
```Example:
```shell
bin/basic-flight -33000 3000 2000
```## Controls
| Key(s) | Action |
|-------------------------|---------------------------------------|
| `A` / `S` | Pitch down and up by 3° |
| `Q` / `E` | Roll left and right by 3° |
| `W` / `D` | Yaw left and right by 3° |
| `+` / `-` | Increase and decrease |
| `X` | Close the application |## Technologies
* **C++**: `>= C++17`
* **Qt**: `5.12.x`
* **OpenGL**: `>= 4.0`Newer versions of Qt might work correctly, if no breaking changes that affect the application were introduced.