SFML / C++

Fermé
TheYoungGeek43 Messages postés 88 Date d'inscription samedi 14 juin 2014 Statut Membre Dernière intervention 1 avril 2017 - 27 juil. 2015 à 15:20
TheYoungGeek43 Messages postés 88 Date d'inscription samedi 14 juin 2014 Statut Membre Dernière intervention 1 avril 2017 - 28 juil. 2015 à 10:13
Bonjour,
Je suis en train de crée un jeux de shoot 2D vue de dessus j'ai reussie a fair bouger la balle sauf que je ne peut que en tirer une j'aurai aimer faire comme si mon perso avez une mitraillette

Bullets.h
#ifndef BULLETS_H
#define BULLETS_H

#include <SFML\Graphics.hpp>

#include "Human.h"

class Bullets
{
public:
	Bullets::Bullets();

	//Accesseurs
	int Bullets::getX(void) const;
	int Bullets::getY(void) const;
	int Bullets::getSpeed(void) const;

	//Mutateur
	void Bullets::setX(int valeur);
	void Bullets::setY(int valeur);
	void Bullets::setSpeed(int valeur);

	//Fonction
	void Bullets::draw(sf::RenderWindow &window, Map &map);
	void Bullets::init(sf::RenderWindow &window, Map &map);
	void Bullets::update(Input &input, sf::RenderWindow &window, Map &map);

private:
	int sizeX;
	int sizeY;
	int speedBullets;
	int x, y;
	int direction,etat;

	sf::RectangleShape rect;
	enum { BULLETSI, BULLETSL, BULLETSR, BULLETSU, BULLETSD };
	enum { ARRET, AVANCE };
};

#endif // !BULLETS_H


Bullets.cpp
#include <SFML\Graphics.hpp>
#include <iostream>
#include "Human.h"
#include "Map.h"
#include "Bullets.h"

Human human;


Bullets::Bullets()
{
	sizeX = 32;
	sizeY = 32;
	speedBullets = 3;
	x = human.getX();
	y = human.getY();
	direction,etat = 0;
}
void Bullets::init(sf::RenderWindow &window, Map &map)
{
	sizeX = 32;
	sizeY = 32;
	speedBullets = 3;
	x = 100;
	y = 300;
	direction =BULLETSU;
	etat = ARRET;
}

int Bullets::getX(void) const { return x; }
int Bullets::getY(void) const { return y; }
int Bullets::getSpeed(void) const { return speedBullets; }


//Mutateurs
void Bullets::setX(int valeur) { x = valeur; }
void Bullets::setY(int valeur) { y = valeur; }
void Bullets::setSpeed(int valeur) { speedBullets = valeur; }

void Bullets::draw(sf::RenderWindow &window, Map &map)
{
	rect.setFillColor(sf::Color::Red);
	rect.setPosition(x, y);
	rect.setSize(sf::Vector2f(sizeX, sizeY));
	//window.draw(rect);
}

void Bullets::update(Input &input, sf::RenderWindow &window, Map &map)
{
	if (input.getButton().shoot)
	{
		direction = BULLETSU;
		etat = AVANCE;
	}
	if (direction == BULLETSU && etat == AVANCE)
	{
		y += speedBullets;
		window.draw(rect);
	}
}


C'est normale que je tire que d'un endroit c'est pour tester
merci pour vos réponse :)

1 réponse

TheYoungGeek43 Messages postés 88 Date d'inscription samedi 14 juin 2014 Statut Membre Dernière intervention 1 avril 2017
28 juil. 2015 à 10:13
Up
0