Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Shawrex

Pages: [1]
1
Général / Re: Création balle pour jeu de tir
« le: Novembre 20, 2019, 09:20:44 pm »
Salux le velux !

J'aimerais te proposer une solution qui peut etre plus simpliste et plus facilement réutilisable !

J'ai un jeu de tir en "top-down" mais que j'utilise en profilé...

Tout d'abord, on va creer une classe pour la balle :
J'ai fait comme ceci : A toi d'adapter si besoin
class Bullet
{
public:
        RectangleShape shape;
        Vector2f currVelocity;
        float speed;

        Bullet()
                : currVelocity(0.f, 0.f), speed(20.f)
        {
                this->shape.setSize(Vector2f(18.f, 18.f));
        }
};
 

Une fois ça fait, tu crée un objet de réf et une "liste" :
        //BULLETS
        Texture bTex;
        bTex.loadFromFile("Textures/ball.png", IntRect(Vector2i(0, 0), Vector2i(6, 6)));
        Bullet b1;
        b1.shape.setTexture(&bTex);

        std::vector<Bullet> bullets;
 

Tu peux crée des vecteurs au lieu des angles pour te faciliter la tache et faire un truc réutilisable à fond ! :
        //VECTORS
        Vector2f playerCenter;
        Vector2f mPosWin;
        Vector2f aimDir;
        Vector2f aimDirNorm;
 
... Dans mon update :
                        //Vectors
                playerCenter = Vector2f(player.getPosition().x + player.getSize().x / 2, player.getPosition().y + player.getSize().y / 2);
                mPosWin = Vector2f(Mouse::getPosition(window));
                aimDir = mPosWin - playerCenter;
                aimDirNorm = aimDir / sqrt(pow(aimDir.x, 2) + pow(aimDir.y, 2));
 

Et apres tu te débrouilles pour que quand tu cliques tu fasse un nouveau bullet à la fin de "bullets" :
if (Mouse::isButtonPressed(Mouse::Left) && shotCounter >= difficulty * 0.8)
                {
                        b1.shape.setPosition(playerCenter);
                        b1.currVelocity = aimDirNorm * b1.speed;

                        bullets.push_back(Bullet(b1));

                        shotCounter = 0;
                }
 
// Ici shotCounter et une variable pour définir ma vitesse de tir et difficulty la difficulté de mon jeu, n'en tien pas compte

Enfin ! Tu bouges tes balles dans une boucles qui prends toutes les balles dans bullets :
                for (size_t i = 0; i < bullets.size(); i++)
                {
                        bullets[i].shape.move(bullets[i].currVelocity);

 
// Ici ce n'est pas fermé car j'ai des choses après


Tiens ! J'espere que ca ira, ne fait pas gaffe au fautes ou autres , car je dois tapper vite !
A plus dans le bus !
Donne moi une update si ca va mieux!
Shawrex  8)

2
Général / Paratger avec le fichier Debug ? ou tout le fichier projet ?
« le: Novembre 20, 2019, 09:09:01 pm »
Bonsoir !

J'ai fini mon premier "mini-jeu" sous SFML et C++ avec Visual Studio 2019 et 2017...

J'aimerais l'envoyer à un ami mais je ne sais comment faire, j'ai regardé pas mal de truc sur internet et youtube mais rien de satisfaisant.

Qaund j'essaye de partager TOUT le fichier à un autre PC ( via Clé USB ) et que je lance le .exe de /Debug , j'ai plusieurs erreurs concernants des dlls ...

Quand je rajoute ces dlls aux autres ces erreurs disparaissent et laisse place à un 0xc000007b.

Quand je copie TOUT le dossier de SFML 2.5.1 dans mon dossier de mon projet et que je modifie les réferences pour qu'elles pointent vers cette copie rien ne change.

J'aimerais savoir comment je peux faire pour partager ma NOBLE création à ma famille ou mes amis !?

Merci beacoup !
Shawrex

Pages: [1]
anything