Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML, C++] Implementacja pocisków

Ostatnio zmodyfikowano 2012-01-09 16:07
Autor Wiadomość
hincu
Temat założony przez niniejszego użytkownika
[SFML, C++] Implementacja pocisków
» 2012-01-09 15:23:36
Witam postanowilem napisac shootera : P no i pojawil sie problem przy tworzenie pociskow nawet nie strzela :P (ale to inny temat juz)
o to kod
C/C++
struct Weapon
{
    char WeaponSpeed;
    char WeaponDMG;
    struct BulletWeapon
    {
        sf::Sprite BulletGFX;
        sf::Vector2f FPos;
        sf::Vector2f Pos;
    };
    std::vector < sf::Sprite > Bullet;
    void CreateBullet( Character &, const sf::Image & );
    void WeaponShoot( Character &, const sf::Input &, sf::RenderWindow & );
    void WeaponReload();
};

void Weapon::CreateBullet( Character & TestCharacter, const sf::Image & TestImage )
{
    sf::Sprite TestSprite;
    TestSprite.SetImage( TestImage );
    Bullet.push_back( TestSprite );
    Bullet[ Bullet.size() ].SetImage( TestImage );
    Bullet[ Bullet.size() ].SetPosition( TestCharacter.CharacterGFX.GetPosition().x, TestCharacter.CharacterGFX.GetPosition().y );
}



void Weapon::WeaponShoot( Character & TestCharacter, const sf::Input & TestMouse, sf::RenderWindow & TestWND )
{
    sf::Vector2f FPos = TestCharacter.CharacterGFX.GetPosition();
    sf::Vector2f EPos;
    EPos.x = TestMouse.GetMouseX();
    EPos.y = TestMouse.GetMouseY();
   
    for( int i = 0; i >= Bullet.size(); i++ )
    {
        if( FPos.x > EPos.x )
        {
            Bullet[ i ].Move( - WeaponSpeed, 0 );
        }
       
        if( FPos.x < EPos.x )
        {
            Bullet[ i ].Move( WeaponSpeed, 0 );
        }
        if( FPos.y > EPos.y )
        {
            Bullet[ i ].Move( 0, - WeaponSpeed );
        }
       
        if( FPos.x < EPos.y )
        {
            Bullet[ i ].Move( 0, WeaponSpeed );
        }
        TestWND.Draw( Bullet[ i ] );
    }
}
P-47718
SeaMonster131
» 2012-01-09 15:59:42
for( int i = 0; i >= Bullet.size(); i++ )

A nie przypadkiem
for( int i = 0; i < Bullet.size(); i++ )

?


I zamiast takiego przesuwania się pocisku jak masz, daj za pomocą sin,cos, będzie bardziej realistycznie wyglądało :P
P-47722
hincu
Temat założony przez niniejszego użytkownika
» 2012-01-09 16:07:30
o dzieki nawet nie zauwazylem tego bledu : P no coz widzac kod codziennie to sie juz nie widzi tak glupich bledow
dzieki za pomoc i propozycje na pewno to rozkminie :D
P-47723
« 1 »
  Strona 1 z 1