BenMakesGames.PlayPlayMini.GraphicsExtensions 2.0.1

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package BenMakesGames.PlayPlayMini.GraphicsExtensions --version 2.0.1                
NuGet\Install-Package BenMakesGames.PlayPlayMini.GraphicsExtensions -Version 2.0.1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="BenMakesGames.PlayPlayMini.GraphicsExtensions" Version="2.0.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add BenMakesGames.PlayPlayMini.GraphicsExtensions --version 2.0.1                
#r "nuget: BenMakesGames.PlayPlayMini.GraphicsExtensions, 2.0.1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install BenMakesGames.PlayPlayMini.GraphicsExtensions as a Cake Addin
#addin nuget:?package=BenMakesGames.PlayPlayMini.GraphicsExtensions&version=2.0.1

// Install BenMakesGames.PlayPlayMini.GraphicsExtensions as a Cake Tool
#tool nuget:?package=BenMakesGames.PlayPlayMini.GraphicsExtensions&version=2.0.1                

What Is It?

PlayPlayMini.GraphicsExtensions contains classes and extensions for PlayPlayMini that add more functionality to PlayPlayMini.

Hey, listen! This is a super-early release which contains a very small number of additions.

Buy Me a Coffee at ko-fi.com

Game States Transitions

ScreenWipe

The ScreenWipe game state allows you to add a screen wipe transition between two game states.

Example usage:

public void GoToNextScene()
{
    GSM.ChangeState<ScreenWipe, ScreenWipeConfig>(new() {
        PreviousState = this,
        NextState = GSM.CreateState<NextScene>(),
        Color = Color.Black,
        WipeTime = 0.25, // in seconds
        Direction = ScreenWipeDirection.RightToLeft
    });
}

There are also options which let you hold on the black screen while some other process finishes (HoldUntil), and/or show a message (Message and MessageColor), which may be useful when performing a long-running operation, such as saving the game, loading the next level from disk, or making an web API call.

Method Reference

DrawTextWithOutline

PlayPlayMini has a built-in DrawTextWithOutline method. GraphicsExtensions's version is easier to use (you do not need to create an outline version of your font), but is less computationally efficient (2.5x the draw calls).

Most games won't notice this performance difference, but if you're tight on CPU cycles for some reason, you may not want to rely on this method.

GraphicsManage.DrawTextWithOutline(
    string fontName,
    int x,
    int y,
    string text,
    Color fillColor,
    Color outlineColor
);

DrawWavyText

DrawWavyText allows you to draw text that moves up and down in a wavy pattern. There are a few overloads of the method which allow you to customize color and positioning of the text.

Draw waving text starting at the specified x/y position:

GraphicsManager.DrawWavyText(
    string fontName,
    GameTime gameTime,
    int x, int y,
    string text,
    Color color = Color.White
);

Draw waving text horizontally-centered at the specified y position:

GraphicsManager.DrawWavyText(
    string fontName,
    GameTime gameTime,
    int y,
    string text,
    Color color = Color.White
);

Draw waving text in the dead center of the screen:

GraphicsManager.DrawWavyText(
    string fontName,
    GameTime gameTime,
    string text,
    Color color = Color.White
);
Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
5.1.0 101 10/6/2024
5.0.0 149 8/17/2024
4.7.1 108 5/28/2024
4.7.0 111 5/24/2024
4.5.0 123 3/23/2024
4.4.0 122 3/2/2024
4.3.0 121 2/25/2024
4.2.0 125 2/22/2024
4.1.0 123 2/12/2024
4.0.1 261 11/25/2023
4.0.0 143 11/25/2023
3.2.1 197 10/28/2023
3.2.0 181 10/26/2023
3.1.0 174 10/25/2023
3.0.0 162 9/18/2023
2.1.0 165 9/17/2023
2.0.1 214 6/30/2023
2.0.0 213 4/23/2023
1.2.0 211 4/16/2023
1.1.1 241 4/9/2023
1.1.0 205 4/9/2023
1.0.0 276 1/7/2023
0.0.1 255 1/7/2023