player can jump

main
Benjamin Kraft 2 years ago
parent a80adc6f44
commit ff3bd0990f
  1. 1
      src/Audio.cpp
  2. 2
      src/Audio.h
  3. 3
      src/Game.cpp
  4. 3
      src/Game.h
  5. 11
      src/Player.cpp
  6. 3
      src/Player.h
  7. 2
      src/Window.cpp

@ -5,6 +5,7 @@
void Audio::update() {
auto cmd = pop();
std::cout << "Playing sound: " + std::to_string(cmd->soundId) << std::endl;
// use volume, soundId to play sound
delete cmd;

@ -2,6 +2,8 @@
#include "Queue.h"
#define SOUND_JUMP 0
struct AudioCommand {
double volume;
unsigned soundId;

@ -4,8 +4,6 @@
void Game::draw(QPixmap &output) {
QPainter p(&output);
double w = output.size().width();
double h = output.size().height();
player.draw(p);
}
@ -15,6 +13,7 @@ void Game::update(float dTime) {
}
Game::Game() {
InputWindow::inputQueue->registerListener(&player);
}

@ -4,6 +4,9 @@
#include "Player.h"
#include "Spectator.h"
#define WIDTH 1000
#define HEIGHT 500
class Game {
Player player;
std::vector<Spectator> spectators;

@ -1,9 +1,11 @@
#include "Player.h"
#include "Audio.h"
#include <iostream>
void Player::mousePressed(MouseEvent *event) {
if (pos.y() == ground)
vel += {0, -300};
if (pos.y() == ground && event->button == Qt::MouseButton::LeftButton){
jump();
}
}
void Player::draw(QPainter &painter) {
@ -24,3 +26,8 @@ void Player::update(float dTime) {
vel = {};
}
}
void Player::jump() {
vel += {0, -300};
Audio::playSound(1, SOUND_JUMP);
}

@ -5,12 +5,13 @@
#include "Entity.h"
#include <QPainter>
class Player : public Entity, public GameListener, public InputListener {
class Player : public Entity, public InputListener {
QVector2D pos {50, 50};
QVector2D vel {};
QVector2D acc {0, 9.81 * 30};
float ground = 400;
void jump();
public:
void draw(QPainter &painter);
void update(float dTime);

@ -14,7 +14,7 @@ Window::Window() {
}
void Window::paintEvent(QPaintEvent *event) {
QPixmap output(1000, 500);
QPixmap output(WIDTH, HEIGHT);
output.fill(Qt::white);
game.draw(output);
label->setPixmap(output.scaled(label->size()));

Loading…
Cancel
Save