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

valentin

Treue Seele

Beiträge: 212

Wohnort: Schweiz

Beruf: Schüler

  • Private Nachricht senden

31

14.07.2011, 19:10

Man kann afaik in Sfml Sprites auch rotieren. Einfach mal die Doku befragen.
visit me on deviantArt!
http://v-alentin.deviantart.com/

There is no programming language, no matter how structured, that will prevent programmers from making bad programs. //Larry Flon

AyJay

Frischling

  • »AyJay« ist der Autor dieses Themas

Beiträge: 67

Beruf: Schule, Hobbys :D

  • Private Nachricht senden

32

14.07.2011, 19:12

als start sprite zeigt die nase nach oben auch wenn ich das änder würde wäre dads resultat falsch das merke ich daran wenn ich drehen bewegt es sich nach links rotiere +1 und er bewegt sich nicht 1 stück weiter nach rechts oder links sondern in irgendeine zufalls richtung :S BZW ich lenke links er fährt rechts.

C-/C++-Quelltext

1
2
3
While(!asleep){
    sheep++;
}

valentin

Treue Seele

Beiträge: 212

Wohnort: Schweiz

Beruf: Schüler

  • Private Nachricht senden

33

14.07.2011, 19:14

Lass mich raten: Du hast das ganze nicht im Bogenmass angegeben.
visit me on deviantArt!
http://v-alentin.deviantart.com/

There is no programming language, no matter how structured, that will prevent programmers from making bad programs. //Larry Flon

AyJay

Frischling

  • »AyJay« ist der Autor dieses Themas

Beiträge: 67

Beruf: Schule, Hobbys :D

  • Private Nachricht senden

34

14.07.2011, 19:15

bogenmaß ist doch

C-/C++-Quelltext

1
sPlayer.GetRotation() * PI / 180
oder nicht ?

C-/C++-Quelltext

1
2
3
While(!asleep){
    sheep++;
}

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

35

14.07.2011, 19:20

Man kann afaik in Sfml Sprites auch rotieren. Einfach mal die Doku befragen.

achnee? Dann muss er aber immer einen Offset addieren wenn er SetRotate benutzt. -.-
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

valentin

Treue Seele

Beiträge: 212

Wohnort: Schweiz

Beruf: Schüler

  • Private Nachricht senden

36

14.07.2011, 19:24

Er kann das rotationscenter doch einfach in die Mitte des Sprites setzen. Was ist das Problem dabei?
visit me on deviantArt!
http://v-alentin.deviantart.com/

There is no programming language, no matter how structured, that will prevent programmers from making bad programs. //Larry Flon

AyJay

Frischling

  • »AyJay« ist der Autor dieses Themas

Beiträge: 67

Beruf: Schule, Hobbys :D

  • Private Nachricht senden

37

14.07.2011, 19:27

meinst du

C-/C++-Quelltext

1
sPlayer.SetCenter(19.5, 21.5);

?

C-/C++-Quelltext

1
2
3
While(!asleep){
    sheep++;
}

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

38

14.07.2011, 19:29

Das Sprite zeigt in die falsche Richtung. Er müsste das Sprite gleich am anfang um 90°, 180° oder 270° Rotieren. Das ist aber aufwendig und verwirrend. Wenn er später die Richtung aus einem Bewegungsvektor berechnen will muss er das auch machen, was den Aufwand nochmal steigert. Was spricht dagegen, das Sprite gleich richtig auszurichten?
Mit dem Center hats nichts zutun.

edit: hatte nen Denkfehler. Er hat den Aufwand jedes mal wenn er die Richtung berechnen will weil er die Bewegungsrichtung aus der Rotation errechnet.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

AyJay

Frischling

  • »AyJay« ist der Autor dieses Themas

Beiträge: 67

Beruf: Schule, Hobbys :D

  • Private Nachricht senden

39

14.07.2011, 19:33

ich will doch jetzt einfach nur die lösung haben :S

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include <iostream>
#include <SFML\System.hpp>
#include <SFML\Graphics.hpp>
#include <string>
#include <sstream>
#include <time.h>
#include <cmath>
#include <math.h>
#include <stdio.h>
//#include "ammo.h"

using namespace std;

#define PI  3.14159265358979323846f

sf::RenderWindow App(sf::VideoMode(800, 600, 32), "Space-Shooter");

//Ammo *Object=NULL;
//int iAmmo = 5;
//int AmmoC = 0;
float speed = 0.89;
float friction = 0.89;

std::string time_t_to_string(time_t t)
{
    std::stringstream sstr;
    sstr << t;
    return sstr.str();
}

/*  int GetFreeAmmo(){
        int FreeAmmo = -1;
        for(int i = 0;i <= iAmmo;i++){
            if(FreeAmmo > -1){
                if(Object[i].inUse == false){
                    FreeAmmo = i;
                }
                FreeAmmo = 1;
            }
        }
        return FreeAmmo;
    }*/

int main(int argc, char **argv)
{

    sf::Image iPlayer_n;
    iPlayer_n.LoadFromFile("ship-not-m.png");
    iPlayer_n.SetSmooth(false);
    iPlayer_n.CreateMaskFromColor(sf::Color(255,0,255,255));

    sf::Sprite sPlayer(iPlayer_n);
    sPlayer.SetCenter(19.5, 21.5);
    sPlayer.SetPosition(400, 300);

    //Object = new Ammo[iAmmo];

    App.UseVerticalSync(true);

    while (App.IsOpened())
    {
        sf::Event Event;
        while (App.GetEvent(Event))
        {
            if (Event.Type == sf::Event::Closed){
                App.Close();
            }
            if (Event.Type == sf::Event::KeyPressed)
            {

                if (Event.Key.Code == sf::Key::Escape){
                    App.Close();
                }
                if (Event.Key.Code == sf::Key::F1)
                {
                    sf::Image Screen = App.Capture();
                    time_t seconds;
                    time(&seconds);
                    Screen.SaveToFile("screenshot_" + time_t_to_string(seconds) + ".jpg");
                }
            }
        }
        if (App.GetInput().IsMouseButtonDown(sf::Mouse::Left)){
            //time_t the_time;
            //int x;
            //the_time = time(0);
            //x = static_cast<int> (the_time);
            //Object[0].Create(sPlayer.GetPosition().x,sPlayer.GetPosition().y,x,sPlayer.GetRotation());
        }
        if (App.GetInput().IsKeyDown(sf::Key::A)){ sPlayer.SetRotation(sPlayer.GetRotation() - 1); }
        if (App.GetInput().IsKeyDown(sf::Key::D)){ sPlayer.SetRotation(sPlayer.GetRotation() + 1); }
        if (App.GetInput().IsKeyDown(sf::Key::W)){

            float xÄnderung = cos(sPlayer.GetRotation() * PI / 180);
            float yÄnderung = sin(sPlayer.GetRotation() * PI / 180);
            sPlayer.Move(xÄnderung * speed, yÄnderung * speed);

        }
        if (App.GetInput().IsKeyDown(sf::Key::S)){
        
        }

        App.Clear(sf::Color(255, 255, 255));

        App.Draw(sPlayer);

        /*for(int i = 0;i <= iAmmo;i++){
            if(Object[i].inUse == true){
                App.Draw(Object[i].sAmmo);
                //cout << "timestamp: " << Object[i].TimeStamp << endl;
            }
        }*/

        App.Display();

    }

    return EXIT_SUCCESS;
}
»AyJay« hat folgendes Bild angehängt:
  • ship-not-m.png

C-/C++-Quelltext

1
2
3
While(!asleep){
    sheep++;
}

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

40

14.07.2011, 19:34

Dreh das verdammte Sprite mit Gimp und fertig.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Werbeanzeige