AristurtleDev / monogame-aseprite

A Cross Platform C# Library That Adds Support For Aseprite Files in MonoGame Projects.
https://monogameaseprite.net
MIT License
166 stars 15 forks source link

specify animation sprite example? #30

Closed ghost closed 2 years ago

ghost commented 2 years ago

Hello

I first used this code for animations in monogame but now moved to aseprite

https://www.monogameextended.net/docs/features/animations/animations

Can you give me a code example on how to do display the sprites in Update() function there (for key movements and associated sprite) but by using monogame.aseprite code? I can't find how to do it

Thank you

manbeardgames commented 2 years ago

I have a full project example, fully commented, showing this. You can find it at https://github.com/manbeardgames/monogame-aseprite-demo

ghost commented 2 years ago

YOU ROCK!!! I was assuming there were no examples (this is the case with many many monogame packages) so that's why I was not aware you HAVE good examples.

ghost commented 2 years ago

What .net frameworks can be used in combination with monogame-aseprite? Because when I use .NET 6.0 I get a whole lot of errors while those 3 packages are installed

afbeelding

So it can't find anything here, not even monogame :-S

afbeelding

ghost commented 2 years ago

When I first open the solution, I get this error (I'm using .NET 6.0):

afbeelding

I'm no expert in all this. Can you help?

manbeardgames commented 2 years ago

The 3.8 version should use the netstandard2.1 package automatically, so shouldn't be seeing issues with NET6.

Can you send me some info so I can try to reproduce this.

  1. Visual Studio Version
  2. installed MG templates? Or typicaly use the dotnet cli?
  3. if installed templates, which version is installed?

Let me look into this and I'll reply back soon

ghost commented 2 years ago

Hi

Here is all info. I just opened the solution file and have changed it to .NET 6.0. Nothing else changed.

afbeelding

  1. afbeelding

dotnet --list-sdks 2.1.202 [C:\Program Files\dotnet\sdk] 2.1.505 [C:\Program Files\dotnet\sdk] 2.1.602 [C:\Program Files\dotnet\sdk] 2.1.604 [C:\Program Files\dotnet\sdk] 2.1.700 [C:\Program Files\dotnet\sdk] 5.0.100 [C:\Program Files\dotnet\sdk] 6.0.201 [C:\Program Files\dotnet\sdk]

  1. I use VS2022 community and the MG templates are not found. So I think they don't exist for VS2022 (only for VS2019). I used the CLI to make a new desktop openGL project for MonoGame. But this works perfectly for other MonoGame code, also when using other packages like MonoGame.Extended. The MGCB editor was installed this way too.

  2. So no templates used, because they don't exist for VS2022

VidarErmesjo commented 2 years ago

When I first open the solution, I get this error (I'm using .NET 6.0):

afbeelding

I'm no expert in all this. Can you help?

No problems using .NET 6 here.

AsepriteDocumentImporter. This is related to MGCB - no? Have you added the .dll reference.

Like in my Content.mgcb =>

-------------------------------- References --------------------------------

/reference:...............nuget\packages\monogame.extended.content.pipeline\3.8.0\tools\MonoGame.Extended.Content.Pipeline.dll /reference:...............nuget\packages\monogame.aseprite\2.0.3.3\contentFiles\netstandard2.0\MonoGame.Aseprite.ContentPipeline.dll

ghost commented 2 years ago

That must be it!

in the editor, there is a reference but it points to something that doesn't exist. Where can I find MonoGame.Aseprite.ContentPipeline.dll ? I don't even have a "packages" folder inside my solution while all packages are installed :-S I thought normally all nuget packages are in such a folder, but I don't have one.

If you have made a VS2022 solution file using CLI in monogame, are packages installed somewhere else maybe? I can't find the needed DLL

afbeelding

VidarErmesjo commented 2 years ago

The nuget folder is somewhere under your Windows folder. Do a search. The path should be the same as mine from nuget/packages onwards.

Follow this guide: https://manbeardgames.github.io/monogame-aseprite/getting-started/monogame38installation

ghost commented 2 years ago

Thx! I added it and everything is working :)

ghost commented 2 years ago

Hi

I have a question about the example. Why is this method needed?

private bool KeyPressed(Keys key) { return _curKeyState.IsKeyDown(key) && _prevKeyState.IsKeyUp(key); }

Why you need to check the _prevKeyState to know which key is pressed? I'm not 100% sure why that's needed. I hope you can explain. I'm still a beginner using this library (and also aseprite)

manbeardgames commented 2 years ago

Checking the previous state here allows you to see if a key is pressed once versus being held down.

If you only check the current state each frame while a key is down, then it returns true for every frame

manbeardgames commented 2 years ago

Also, to add, that specific method isn't something specific to the library. It's just general key/button state checking for the example project.

AristurtleDev commented 2 years ago

Original issue was resolved. For general questions, please use our discord