Who knows

This commit is contained in:
Benjamin Morgan 2025-09-26 09:26:47 -06:00
parent eaf5a55d18
commit 32e50969b4
45 changed files with 38346 additions and 38306 deletions

116
Weapon.h
View file

@ -1,58 +1,58 @@
//
// Created by Benjamin on 4/20/2021.
//
#ifndef SFML_TEMPLATE_WEAPON_H
#define SFML_TEMPLATE_WEAPON_H
#include "Projectile.h"
#include "GameSprite.h"
#include <SFML/Audio.hpp>
#include <iostream>
class Weapon {
protected:
int frameDelay, currentFrame;
Shootable projectile;
sf::Sound noise;
double effectiveAngle;
Weapon() {
frameDelay = 0;
currentFrame = 0;
projectile = Shootable();
};
explicit Weapon(int _frameDelay, double _effectiveAngle, const sf::SoundBuffer& _buffer, float volume) : Weapon() {
effectiveAngle = _effectiveAngle;
frameDelay = _frameDelay;
noise.setBuffer(_buffer);
noise.setVolume(volume);
}
public:
virtual Shootable* shoot(const Ship* shooter) {
return new Shootable(projectile);
}
void recharge() {
if (currentFrame < frameDelay) {
currentFrame++;
}
}
bool canShoot() const {
return currentFrame == frameDelay;
}
Shootable& getProjectile() {
return projectile;
}
double getEffectiveAngle() const {
return effectiveAngle;
}
};
#endif //SFML_TEMPLATE_WEAPON_H
//
// Created by Benjamin on 4/20/2021.
//
#ifndef SFML_TEMPLATE_WEAPON_H
#define SFML_TEMPLATE_WEAPON_H
#include "Projectile.h"
#include "GameSprite.h"
#include <SFML/Audio.hpp>
#include <iostream>
class Weapon {
protected:
int frameDelay, currentFrame;
Shootable projectile;
sf::Sound noise;
double effectiveAngle;
Weapon() {
frameDelay = 0;
currentFrame = 0;
projectile = Shootable();
};
explicit Weapon(int _frameDelay, double _effectiveAngle, const sf::SoundBuffer& _buffer, float volume) : Weapon() {
effectiveAngle = _effectiveAngle;
frameDelay = _frameDelay;
noise.setBuffer(_buffer);
noise.setVolume(volume);
}
public:
virtual Shootable* shoot(const Ship* shooter) {
return new Shootable(projectile);
}
void recharge() {
if (currentFrame < frameDelay) {
currentFrame++;
}
}
bool canShoot() const {
return currentFrame == frameDelay;
}
Shootable& getProjectile() {
return projectile;
}
double getEffectiveAngle() const {
return effectiveAngle;
}
};
#endif //SFML_TEMPLATE_WEAPON_H