12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #include "bug.h"
- #include "debuggers.h"
- #include <iostream>
- #include <random>
-
- namespace pabloader {
- Bug::Bug(Debuggers* game)
- : Entity(game)
- {
- w = game->enemiesSprite.width / 4;
- h = game->enemiesSprite.height / 4;
- }
-
- void Bug::Update(float dt)
- {
- y += yv * dt;
- yv += 30 * dt;
-
- rotation += 3.14 / 8 * rotationSpeed * dt;
-
- transform.Reset();
- transform.Rotate(rotation);
- transform.Translate(x, y);
- }
-
- void Bug::Draw()
- {
- #ifdef _DEBUG
- game->DrawRect(x - w / 2, y - h / 2, w, h, olc::RED);
- #endif
- olc::GFX2D::DrawPartialSprite(&game->enemiesSprite, 0, kind * h, w, h, transform, true);
- }
-
- bool Bug::IsActive()
- {
- return y - h / 2 < game->GameScreenHeight();
- }
-
- void Bug::ResetPosition()
- {
- y = -20 - std::rand() % game->ScreenHeight();
- x = w + std::rand() % (game->ScreenWidth() - w * 2);
- yv = 0;
- kind = std::rand() % 4;
- rotationSpeed = -8 + rand()%17;
- }
-
- void Bug::Kill()
- {
- y = game->GameScreenHeight() + 100;
- }
- }
|