You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
2.1 KiB

<p align="center">
<a href="https://amethyst.rs">
<img
alt="Amethyst"
src="https://amethyst.rs/brand/logo-standard.svg"
width="60"
/>
</a>
</p>
<h1 align="center">
Amethyst 2D Starter
</h1>
6 years ago
This project template will get you from 0 to drawing something on the screen in no time. If you're looking for a more in-depth introduction to the engine, please have a look at [our book](https://book.amethyst.rs/stable/)!
6 years ago
## Quickstart
6 years ago
- Clone the repository
```bash
git clone https://github.com/amethyst/amethyst-starter-2d.git
cd amethyst-starter-2d
6 years ago
```
- Build and run the project
6 years ago
```bash
cargo run
6 years ago
```
#### For Mac Users
6 years ago
This starter uses vulkan as a renderer by default. You'll want to change the backend to use `metal`, which can be done by opening the `Cargo.toml` file and changing
6 years ago
```toml
[features]
default = ["vulkan"]
6 years ago
```
to
```toml
[features]
default = ["metal"]
6 years ago
```
If using OSX and Metal you will require full XCode installed from the Appstore in order to compile metal shaders.
After install you may be required to run this command `sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer` [reference gfx-rs issue](https://github.com/gfx-rs/gfx/issues/2472)
#### For Linux Users
You might need to install some dependencies. Please refer to [this section](https://github.com/amethyst/amethyst#dependencies) of the README for more details.
## Features
This project contains the minimum amount of code needed to draw sprites to the screen. Here's a small summary of what you'll find in the source files:
- `resources/display_config.ron`
Contains the window configuration (size, title).
- `src/main.rs`
Creates the render graph, adds the required bundles, builds the game data with our own state and finally, starts the game's main event loop.
- `src/state.rs`
Implements the main game state. In the `on_start` hook, the camera is initialized, and the sprites that will be drawn are loaded and their entities created.
In the `handle_event` hook, we print any keys that were pressed and close the window if the user presses escape or the OS requests that we quit.