Skip to content

Minor merge fixes #62

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ The thumbstick values are represented as a [**Vector2**](xref:Microsoft.Xna.Fram
- X-axis: A value between `-1.0f` (pushed fully to the left) and `1.0f` (pushed fully to the right).
- Y-axis: A value between `-1.0f` (pushed fully downward) and `1.0f` (pushed fully upward).

For example, if you wanted to move a sprite using the left thumbstick, you could do the following
For example, if you wanted to move a sprite using the left thumbstick, you could do the following:

[!code-csharp[](./snippets/thumbstick.cs)]

Expand Down Expand Up @@ -331,7 +331,7 @@ For our game, we are going to implement keyboard and gamepad controls based on t
| [Keys.D] and [Keys.Right] | [Thumbstick.Left.X] and [Buttons.DPadRight] | Moves the slime right on the screen. |
| [Keys.Space] | [Buttons.A] | Increased the speed of the slime. |

Open `Game1.cs` and update it with the following:
Open `Game1.cs` the *DungeonSlime* project and update it with the following:

[!code-csharp[](./snippets/game1.cs?highlight=17-21,60-64,69-157,168)]

Expand Down Expand Up @@ -390,7 +390,7 @@ A basic input buffer can be implemented using a queue data structure, which foll
>
> This contrasts with a [`Stack<T>`](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.stack-1?view=net-9.0>), which follows Last In, First Out (LIFO) behavior, where the most recently added item is the first one retrieved.

The size of an input buffer is an important design decision. If it's too small, players might still feel the game isn't responsive enough. If it's too large, the game might feel like it's playing itself by working through a backlog of commands.
The size of an input buffer is an important design decision. If it is too small, players might still feel the game is not responsive enough. If it is too large, the game might feel like it is playing itself by working through a backlog of commands.

### When to Use Input Buffering

Expand All @@ -401,7 +401,7 @@ Consider implementing input buffering in your game when:
- Actions require precise timing that is difficult for players to hit consistently.
- You want to allow players to "queue up" their next few moves.

We'll see a practical implementation of input buffering in [Chapter 23](../23_completing_the_game/index.md) when we finalize our snake-like game mechanics, where timing and direction changes are critical to gameplay.
We will see a practical implementation of input buffering in [Chapter 23](../23_completing_the_game/index.md) when we finalize our snake-like game mechanics, where timing and direction changes are critical to gameplay.

## Conclusion

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,7 @@ Implementing the input buffering technique we introduced in [Chapter 10](../10_h

### Implementing Input Buffering in the Slime Class

For the `Slime` class, we will implement input buffering based on the example given using a `Queue<T>` in [Chapter 10](../10_handling_input/index.md#implementing-a-simple-input-buffer). In the `GameObject` folder of the `DungeonSlime` project (your main game project), open the `Slime.cs` file so we can make the changes.
For the `Slime` class, we will implement input buffering based on the example given using a `Queue<T>` in [Chapter 10](../10_handling_input/index.md#implementing-a-simple-input-buffer). In the `GameObject` folder of the *DungeonSlime* project (your main game project), open the `Slime.cs` file so we can make the changes.

First, update the using statements at the top of the `Slime` class to add the `System.Linq` using statement:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ To create this structure, from the same terminal window:
> [!NOTE]
> This moves the `Content` directory to the expected location for resources in a macOS application bundles.

5. Create a new file called *Info.plist* in the *Contents* directory of the application bundle with the following command:
5. Create a new file called `Info.plist` in the `Contents` directory of the application bundle with the following command:

```sh
touch bin/Release/DungeonSlime.app/Contents/Info.plist
Expand All @@ -189,7 +189,7 @@ To create this structure, from the same terminal window:
> [!NOTE]
> The `touch` command creates an empty file if it does not exist or updates the modification time if it does exist. We are using it here to create a blank file that we will populate with content in the next step.

6. Open the *Info.plist* file you just created in a text editor and add the following content to the file and save it.
6. Open the `Info.plist` file you just created in a text editor and add the following content to the file and save it.

[!code-xml[](./snippets/info.plist?highlight=8,10,12,16,30)]

Expand All @@ -216,7 +216,7 @@ To create this structure, from the same terminal window:
> For more information on the `Info.plist` manifest file, refer to the [About Info.plist Keys and Values](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Introduction/Introduction.html) Apple Developer documentation.


7. Next, create the application bundle *.icns* icon file. To do this, perform the following:
7. Next, create the application bundle `.icns` icon file. To do this, perform the following:

1. First, you will need a `.png` file that can be used to create the icon set for the final `.icns` output. If you already have a `.png` icon for your game, ensure it is in the root of the main project directory and is named `Icon.png`. If you do not have one already prepared, you can use the `Icon.bmp` that was generated in the root of the main project directory when you initially created the project. However, it will need to be converted to a `.png` first. To do this, execute the following command:

Expand Down