mirror of
https://github.com/sigonasr2/hamster.git
synced 2025-04-16 13:49:41 -05:00
Add border image + setup asset loading and animation loading for images.
This commit is contained in:
parent
e6ba1e88c7
commit
593841971d
3
.gitignore
vendored
3
.gitignore
vendored
@ -11,3 +11,6 @@ vs-build
|
||||
/CMakeFiles
|
||||
/hamster.dir/Debug
|
||||
/x64/Debug
|
||||
/bin/assets
|
||||
/bin/hamster.exe
|
||||
/bin/hamster.pdb
|
||||
|
File diff suppressed because one or more lines are too long
4
ALL_BUILD.vcxproj.user
Normal file
4
ALL_BUILD.vcxproj.user
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
</Project>
|
@ -154,10 +154,10 @@ CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL
|
||||
|
||||
//If set, runtime paths are not added when installing shared libraries,
|
||||
// but are added when building.
|
||||
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
|
||||
CMAKE_SKIP_INSTALL_RPATH:BOOL=OFF
|
||||
|
||||
//If set, runtime paths are not added when using shared libraries.
|
||||
CMAKE_SKIP_RPATH:BOOL=NO
|
||||
CMAKE_SKIP_RPATH:BOOL=OFF
|
||||
|
||||
//Flags used by the linker during the creation of static libraries
|
||||
// during all build types.
|
||||
@ -183,7 +183,7 @@ CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
|
||||
// .SILENT directive, and all commands will be echoed to the console
|
||||
// during the make. This is useful for debugging only. With Visual
|
||||
// Studio IDE projects all commands are done without /nologo.
|
||||
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
|
||||
CMAKE_VERBOSE_MAKEFILE:BOOL=OFF
|
||||
|
||||
//Show a terminal window for STDOUT/STDERR
|
||||
HAS_TERMINAL:BOOL=ON
|
||||
|
0
New Text Document.txt
Normal file
0
New Text Document.txt
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 12 KiB |
BIN
assets/border.xcf
Normal file
BIN
assets/border.xcf
Normal file
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 45 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bin/hamster.exe
BIN
bin/hamster.exe
Binary file not shown.
BIN
bin/hamster.pdb
BIN
bin/hamster.pdb
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -2,14 +2,16 @@
|
||||
<Project ToolsVersion="17.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="C:\Users\sigon\source\repos\hamster\assets\.keepme" />
|
||||
<CustomBuild Include="C:\Users\sigon\source\repos\hamster\assets\gfx\space.png">
|
||||
<CustomBuild Include="C:\Users\sigon\source\repos\hamster\assets\border.png">
|
||||
<Filter>Resources</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="C:\Users\sigon\source\repos\hamster\assets\border.xcf" />
|
||||
<CustomBuild Include="C:\Users\sigon\source\repos\hamster\assets\gametiles.png">
|
||||
<Filter>Resources</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="C:\Users\sigon\source\repos\hamster\assets\toybox32-1x.png">
|
||||
<Filter>Resources</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="C:\Users\sigon\source\repos\hamster\assets\sounds\Explosions1.wav" />
|
||||
<CustomBuild Include="C:\Users\sigon\source\repos\hamster\assets\sounds\Laser_Shoot11.wav" />
|
||||
<CustomBuild Include="C:\Users\sigon\source\repos\hamster\assets\sounds\bg-music.wav" />
|
||||
<CustomBuild Include="C:\Users\sigon\source\repos\hamster\assets\sounds\lose9.wav" />
|
||||
<CustomBuild Include="C:\Users\sigon\source\repos\hamster\assets\sounds\thruster.wav" />
|
||||
<CustomBuild Include="C:\Users\sigon\source\repos\hamster\CMakeFiles\842494a5b997e5d0cebd893a59fb5c26\copy_data.rule">
|
||||
<Filter>CMake Rules</Filter>
|
||||
</CustomBuild>
|
||||
|
4
copy_data.vcxproj.user
Normal file
4
copy_data.vcxproj.user
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
</Project>
|
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="17.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="src\HamsterGame.cpp">
|
||||
<ClCompile Include="C:\Users\sigon\source\repos\hamster\src\HamsterGame.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Users\sigon\source\repos\hamster\src\olcPGEX_MiniAudio.cpp">
|
||||
@ -18,45 +18,5 @@
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{6FA4D8BB-23B0-3494-9ED3-B7DCE970FEDF}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{7d02a2cb-d3b1-4576-813d-9a586e6aedd3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Documentation">
|
||||
<UniqueIdentifier>{ecbaa59b-6b75-4ab7-ab55-985bbd1e800c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="src\miniaudio.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\olcPGEX_MiniAudio.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\olcPixelGameEngine.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="olcUTIL_Geometry2D.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\olcPGEX_ViewPort.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\olcUTIL_Geometry2D.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\HamsterGame.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="src\olcUTIL_Animate2D.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Text Include="src\TODO.txt">
|
||||
<Filter>Documentation</Filter>
|
||||
</Text>
|
||||
<Text Include="src\CREDITS.txt">
|
||||
<Filter>Documentation</Filter>
|
||||
</Text>
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -1,6 +1,10 @@
|
||||
#include "HamsterGame.h"
|
||||
#include <stdexcept>
|
||||
|
||||
geom2d::rect<float>HamsterGame::SCREEN_FRAME{{96,0},{320,288}};
|
||||
std::unordered_map<std::string,Animate2D::Animation<int>>HamsterGame::ANIMATIONS;
|
||||
std::unordered_map<std::string,Renderable>HamsterGame::GFX;
|
||||
const std::string HamsterGame::ASSETS_DIR{"assets/"};
|
||||
|
||||
HamsterGame::HamsterGame()
|
||||
{
|
||||
@ -8,22 +12,48 @@ HamsterGame::HamsterGame()
|
||||
}
|
||||
|
||||
bool HamsterGame::OnUserCreate(){
|
||||
LoadGraphics();
|
||||
LoadAnimations();
|
||||
return true;
|
||||
}
|
||||
|
||||
void HamsterGame::LoadGraphics(){
|
||||
|
||||
#undef LoadImage
|
||||
auto LoadImage=[this](std::string_view img){
|
||||
GFX.insert({ASSETS_DIR+std::string(img),Renderable{}});
|
||||
rcode result{GFX[ASSETS_DIR+std::string(img)].Load(ASSETS_DIR+std::string(img))};
|
||||
if(result!=OK)throw std::runtime_error{std::format("Failed to Load Image {}. OLC Rcode: {}",img,int(result))};
|
||||
};
|
||||
|
||||
LoadImage("border.png");
|
||||
}
|
||||
|
||||
void HamsterGame::LoadAnimations(){
|
||||
|
||||
}
|
||||
|
||||
bool HamsterGame::OnUserUpdate(float fElapsedTime){
|
||||
DrawDecal({},
|
||||
gameWindow.FillRectDecal({},{150.f,150.f},WHITE);
|
||||
DrawDecal({},GetGFX("border.png").Decal());
|
||||
gameWindow.FillRectDecal({},{500.f,150.f},WHITE);
|
||||
return true;
|
||||
}
|
||||
|
||||
const Renderable&HamsterGame::GetGFX(const std::string_view img){
|
||||
if(!GFX.count(ASSETS_DIR+std::string(img)))throw std::runtime_error{std::format("Image {} does not exist!",img)};
|
||||
return GFX[ASSETS_DIR+std::string(img)];
|
||||
}
|
||||
const Animate2D::Animation<int>&HamsterGame::GetAnimations(const std::string_view img){
|
||||
if(!ANIMATIONS.count(ASSETS_DIR+std::string(img)))throw std::runtime_error{std::format("Animations for {} does not exist!",img)};
|
||||
return ANIMATIONS[ASSETS_DIR+std::string(img)];
|
||||
}
|
||||
|
||||
bool HamsterGame::OnUserDestroy(){
|
||||
|
||||
ANIMATIONS.clear();
|
||||
GFX.clear();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
HamsterGame game;
|
||||
|
@ -43,15 +43,25 @@ All rights reserved.
|
||||
|
||||
class HamsterGame : public olc::PixelGameEngine
|
||||
{
|
||||
const static std::string ASSETS_DIR;
|
||||
public:
|
||||
enum AnimationStates{
|
||||
DEFAULT
|
||||
};
|
||||
|
||||
HamsterGame();
|
||||
static geom2d::rect<float>SCREEN_FRAME;
|
||||
static std::unordered_map<std::string,Animate2D::Animation<int>>ANIMATIONS;
|
||||
const ViewPort gameWindow{{SCREEN_FRAME.pos,SCREEN_FRAME.pos+vf2d{0.f,SCREEN_FRAME.size.y},SCREEN_FRAME.pos+SCREEN_FRAME.size,SCREEN_FRAME.pos+vf2d{SCREEN_FRAME.size.x,0.f}},{96,0}};
|
||||
public:
|
||||
bool OnUserCreate()override final;
|
||||
bool OnUserUpdate(float fElapsedTime)override final;
|
||||
bool OnUserDestroy()override final;
|
||||
|
||||
static const Renderable&GetGFX(const std::string_view img);
|
||||
static const Animate2D::Animation<int>&GetAnimations(const std::string_view img);
|
||||
private:
|
||||
void LoadGraphics();
|
||||
void LoadAnimations();
|
||||
static std::unordered_map<std::string,Renderable>GFX;
|
||||
static std::unordered_map<std::string,Animate2D::Animation<int>>ANIMATIONS;
|
||||
};
|
@ -59,7 +59,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "olcPixelGameEngine.h"
|
||||
#include "utilities/olcUTIL_Geometry2D.h"
|
||||
#include "olcUTIL_Geometry2D.h"
|
||||
#include <unordered_map>
|
||||
|
||||
namespace olc::utils::Animate2D
|
||||
|
Loading…
x
Reference in New Issue
Block a user