Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ae78c19cd8 | |||
| bc000ae2c0 | |||
| 2dcd58dbde |
72
dasher.cpp
72
dasher.cpp
@@ -9,7 +9,7 @@ int main() {
|
||||
InitWindow(windowWidth, windowHeight, "ECS Dapper Dasher");
|
||||
|
||||
// Acceleration due to gravity (pixels per frame/frame)
|
||||
const int gravity{ 1 };
|
||||
const int gravity{ 1'000 };
|
||||
|
||||
// Scarfy setup
|
||||
Texture2D scarfy = LoadTexture("textures/scarfy.png"); // Load the texture
|
||||
@@ -22,18 +22,38 @@ int main() {
|
||||
scarfyPos.x = windowWidth / 2 - scarfyRect.width / 2;
|
||||
scarfyPos.y = windowHeight - scarfyRect.height;
|
||||
|
||||
// Nebula setup
|
||||
Texture2D nebula = LoadTexture("textures/12_nebula_spritesheet.png"); // Load the texture
|
||||
Rectangle nebRect{0.0, 0.0, nebula.width / 8, nebula.height / 8};
|
||||
Vector2 nebulaPos{windowWidth, windowHeight - nebRect.height};
|
||||
|
||||
int nebFrame{}; // Nebula animation frame
|
||||
const float nebUpdateTime{1.0 / 12.0}; // Nebula running time
|
||||
float nebRunningTime{}; // Nebula time since last frame change
|
||||
|
||||
int nebVel{-200}; // Nebula x velocity (pixels per second)
|
||||
|
||||
// Animation Frame
|
||||
int frame{};
|
||||
|
||||
const float updateTime{1.0 / 12.0}; // Time between frames
|
||||
float runningTime{}; // Time since last frame change
|
||||
|
||||
// Is the rectangle in the air
|
||||
bool isInAir{};
|
||||
|
||||
int velocity{}; // Current velocity
|
||||
|
||||
// Jump velocity
|
||||
const int jumpVelocity{-22};
|
||||
// Jump velocity (pixels per second)
|
||||
const int jumpVelocity{-600};
|
||||
|
||||
// Main game loop
|
||||
SetTargetFPS(60);
|
||||
while (!WindowShouldClose())
|
||||
{
|
||||
// Delta time
|
||||
const float dT = GetFrameTime(); // Delta time (time since last frame)
|
||||
|
||||
// Start Game Logic
|
||||
BeginDrawing();
|
||||
ClearBackground(WHITE);
|
||||
@@ -45,7 +65,7 @@ int main() {
|
||||
}
|
||||
else
|
||||
{
|
||||
velocity += gravity; // Apply gravity when in the air
|
||||
velocity += gravity * dT; // Apply gravity when in the air
|
||||
isInAir = true;
|
||||
}
|
||||
|
||||
@@ -54,9 +74,48 @@ int main() {
|
||||
velocity += jumpVelocity; // Jump velocity
|
||||
}
|
||||
|
||||
// Nebula movement
|
||||
nebulaPos.x += nebVel * dT;
|
||||
|
||||
// Update position
|
||||
scarfyPos.y += velocity;
|
||||
|
||||
scarfyPos.y += velocity * dT;
|
||||
|
||||
// Scarfy Animation Logic
|
||||
if (!isInAir)
|
||||
{
|
||||
// Update running time
|
||||
runningTime += dT;
|
||||
if (runningTime >= updateTime)
|
||||
{
|
||||
runningTime = 0.0;
|
||||
|
||||
// Update animation frame
|
||||
scarfyRect.x = frame * scarfyRect.width;
|
||||
frame++;
|
||||
if (frame > 5)
|
||||
{
|
||||
frame = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Nebula animation frame
|
||||
nebRunningTime += dT;
|
||||
if (nebRunningTime >= (nebUpdateTime))
|
||||
{
|
||||
nebRunningTime = 0.0;
|
||||
nebRect.x = nebFrame * nebRect.width;
|
||||
nebFrame++;
|
||||
if (nebFrame > 7)
|
||||
{
|
||||
nebFrame = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// draw Nebula
|
||||
DrawTextureRec(nebula, nebRect, nebulaPos, WHITE); // Draw the texture
|
||||
|
||||
// draw Scarfy
|
||||
DrawTextureRec(scarfy, scarfyRect, scarfyPos, WHITE); // Draw the texture
|
||||
|
||||
// End Game Logic
|
||||
@@ -65,6 +124,7 @@ int main() {
|
||||
|
||||
// Unload texture
|
||||
UnloadTexture(scarfy);
|
||||
UnloadTexture(nebula);
|
||||
|
||||
// Close the window properly
|
||||
CloseWindow();
|
||||
|
||||
Reference in New Issue
Block a user