Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

21

29.01.2016, 14:50

Wie mache ich das den ?( Also ich glaube das ich was in der Zeile ändern muss

C-/C++-Quelltext

1
NCTexture.loadFromFile("Assets/Bullet.png");

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »N4SONIC« (29.01.2016, 14:56)


Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

22

29.01.2016, 14:55

Indem du die Textur als Referenz/Pointer speicherst ;)
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

23

29.01.2016, 15:11

Soweit bin ich bis jetzt gekommen sieht das Gut aus ?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#pragma once

#include <SFML\Graphics.hpp>
#include <list>

#include "NCTexture.hpp"

class Bullet {

public:
    Bullet              ();
    void Init           (float PosX, float PosY);
    void Update         (float ElapsedTime);
    void Render         (sf::RenderWindow &Window);

private:
    const sf::Texture   &Texture;
    const NCTexture     &NCTexture;
    sf::Sprite          Sprite;

    float               MoveSpeed;

};


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "Bullet.hpp"

Bullet::Bullet() : Texture(NCTexture), MoveSpeed(300.0f) {

    Sprite = sf::Sprite(Texture);
    Sprite.setTexture(NCTexture);
    Sprite.setOrigin(static_cast<float>(NCTexture.getSize().x / 2), static_cast<float>(NCTexture.getSize().y / 2));
    Sprite.setPosition(400, 500);

}

void Bullet::Init(float PosX, float PosY) {

    Sprite.setPosition(PosX, PosY);

}

void Bullet::Update(float ElapsedTime) {

    Sprite.move(0, -MoveSpeed * ElapsedTime);

}

void Bullet::Render(sf::RenderWindow &Window) {

    Window.draw(Sprite);

}

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

24

29.01.2016, 15:18

Theoretisch ja, aber wieso ist da jetzt wieder eine normale Texture als Member?
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

25

29.01.2016, 16:08

Also soll nur die NCTexture Klasse als Member sein ?

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

26

29.01.2016, 16:09

Ja. Deine NCTexture ist doch eine vollwertige sf::Texture.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

27

29.01.2016, 16:38

Aber was muss ich jetzt noch ändern ?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
Bullet::Bullet() : MoveSpeed(300.0f) {

    Sprite = sf::Sprite(NCTexture);
    Sprite.setTexture(NCTexture);
    Sprite.setOrigin(static_cast<float>(NCTexture.getSize().x / 2), static_cast<float>(NCTexture.getSize().y / 2));
    Sprite.setPosition(400, 500);

}

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

28

29.01.2016, 16:41

Du setzt die Textur des Sprite doppelt. Ansonsten ist doch alles gut, oder wo hängst du noch fest?
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

29

29.01.2016, 16:46

Ok habe es jetzt geändert aber ich muss doch noch den Pfad zur datei setzten.

C-/C++-Quelltext

1
2
3
4
5
6
7
Bullet::Bullet() : MoveSpeed(300.0f) {

    Sprite = sf::Sprite(NCTexture);
    Sprite.setOrigin(static_cast<float>(NCTexture.getSize().x / 2), static_cast<float>(NCTexture.getSize().y / 2));
    Sprite.setPosition(400, 500);

}

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

30

29.01.2016, 17:01

Ja, das tust du irgendwo zentral. Separation of Concerns. Und dann einfach die Referenz in den CTor deiner Bullet reinreichen und im Member speichern.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

Werbeanzeige