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

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

11

31.01.2010, 11:45

Zitat

Wenn man Spiel erstmal die grunfunktion hat, kann ich es mir
mit einer Spielbaren Demo überlegen. Very Happy

ehm... eine netzwerkfunktion gehört zu den grundfunktionen? ist es ein reines multiplayerspiel? du nimmst dir ganz schön was vor fürs erste eigene spiel.
"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?

12

01.02.2010, 09:00

Jetzt funktionierts alles wunderbar! Ja eine Netzwerkfunktion sollte
den Spaß noch ein bissichien erhöhen, außerdem wollte ich mich
selber auch gerne damit befassen. :D

Das ist nicht das erste Spiel, das ist das erste etwas größere
Spiel, davor hatte ich in der SDL Pong, und Breakout programmiert,
nur nachdem meine Festplatte formatiert wurde,
...Virus :roll: , wurde ich wütend, da mein aktuelles
Projekt in der SDL gelöscht
wurde, jetzt mache ich es wieder weiter (neu angefangen natürlich),
nur halt in SFML, und da alle sagen es sei leichter und schneller, hab
ich halt jetzt SFML genommen.

Ja, jetzt funktionierts wie gesagt, jedenfalls lässt es sich Compilieren,
nur ist das Problem das dass Packet nur einmal rübergesendet wird,
und dann bewegt sich der Sprite halt beim anderen nicht, da das
Packet schon gesendet wurde, wie gesagt.

Natürlich hab ich mir gedanken gemacht, und habs versucht
so zu machen das wenn sich die Variable "Xposition" erhöht,
oder verinngert das dass Packet nochmal gesendet und empfangen
wird. Scheint aber nicht zu funktionieren. Jemand vielleicht ein Tipp,
habs auch mit while etc. versucht, nur dann hengt sich das Spiel auf,
logisch. :?

13

01.02.2010, 09:25

Wenn du es schaffst, deine Spielfigur per Eingabe bewegen zu lassen, bin ich sicher, dass du mit Nachdenken auch darauf kommst, wie du die neue Position an den anderen Spieler sendest ;)

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

14

01.02.2010, 09:35

Zitat von »"chriss"«

Wenn du es schaffst, deine Spielfigur per Eingabe bewegen zu lassen, bin ich sicher, dass du mit Nachdenken auch darauf kommst, wie du die neue Position an den anderen Spieler sendest ;)

mit der sfml ist das so eine sache... da muss man mit threads arbeiten um gleichzeitig empfangen und senden zu können. die gleichen probleme die er hat hatte ich auch ein paar tage lang^^
"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?

15

01.02.2010, 09:44

Öhmm... das heißt für mich??? :)
Was soll ich also jetzt machen?

Edit: Soll ich also jetzt versuchen, die Position vom Server
zu bekommen? So siehts 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
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
void CMenue::DoClientTCP(unsigned short Port)
{
    CJumper* Jumper; Jumper = new CJumper();
    sf::IPAddress ServerAddress;
    do
    {
        std::cout << "Type address or name of the server to send the message to : ";
        std::cin  >> ServerAddress;
    }
    while(!ServerAddress.IsValid());

    sf::SocketTCP Client;

    sf::Packet CharPosition;
    CharPosition<<Jumper->XPosit;

    if (Client.Connect(Port, ServerAddress) != sf::Socket::Done)
        return;
    std::cout <<"Mit Server verbunden!"<<endl;

// Hier denke ich mal muss ich eine Schleife einfügen, die prüft

//ob sich der Charackter beim anderen bewegt... nur wie...

    if (Client.Receive(CharPosition) != sf::Socket::Done)
        return;
    std::cout <<"Daten von Server empfangen!"<<std::endl;

    if (Client.Send(CharPosition) != sf::Socket::Done)
        return;
    std::cout <<"Daten wurden an Server gesendet!"<<std::endl;

    Client.Close();
    delete Jumper;
}

void CMenue::DoServerTCP(unsigned short Port)
{
    CJumper* Jumper; Jumper = new CJumper();

    sf::SocketTCP Server;
    if (!Server.Listen(Port))
        return;

    sf::IPAddress ClientAddress;
    sf::SocketTCP Client;
    sf::Packet CharPosition;
    CharPosition>>Jumper->XPosit;

    if (Server.Accept(Client, &ClientAddress) != sf::Socket::Done)
        return;
    std::cout << "Client connected : " << ClientAddress << std::endl;


    if (Client.Send(CharPosition) != sf::Socket::Done)
        return;
    std::cout <<"Daten wurden an : " << ClientAddress <<" gesendet!"<< std::endl;

    if (Client.Receive(CharPosition) != sf::Socket::Done)
        return;
    std::cout <<"Daten wurden von : " << ClientAddress <<" empfangen!"<< std::endl;

    Client.Close();
    Server.Close();
    delete Jumper;
}
[/cpp]

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

16

01.02.2010, 09:48

wie gesagt ich empfehle dir dich erstmal mit den grundlagen der c++ programmierung befassen und erstmal ein spielbares solospiel zu programmieren bevor du dich an die fortgeschrittenen themen wagst.
"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?

17

01.02.2010, 10:00

Ich will aber dieses Spiel unbedingt beenden... :?
Soll das im klartext heißen ich soll wieder mein C++ Buch auspacken
und nochmal alles lesen? Oder soll ich was bestimmtes
mir nochmal genauer anschauen?

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

18

01.02.2010, 10:11

meinst du das buch von heiko kalista?
das bietet dir nur eine sehr gute einführung.
wenn du das buch verstanden hast ermöglicht es dir andere bücher leichter oder überhaupt zu verstehen.
c++ ist sehr komplex und es werden niemals 438 seiten für eine einführung UND eine ausführliche beschreibung aller sprachelemente reichen.
ich empfehle dieses buch durch zu arbeiten:
http://www.amazon.de/von-bis-Mit-CD-ROM-…61169130&sr=8-1
das enthält übrigens auch ein kapitel über netzwerkprogrammierung.
wenn du dir mühe gibst alles zu verstehen solltest du alles können was du brauchst.

danach kannst du dich daran machen deinen programmierstil zu verbessern:
http://www.amazon.de/Effektiv-programmie…65015365&sr=8-1

oder dir ein buch zu bestimmten themen zu kaufen.

edit: warum nennen die verlage das eigentlich nachschlagewerk oder arbeitsbuch? wenn ich programmiere muss ich doch die möglichkeiten kennen ohne nachschlagen zu müssen.
"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?

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

19

01.02.2010, 10:21

Als Nachschlagewerk kann man imho nur "The C++ Programming language" von Stroustrup empfehlen...

20

01.02.2010, 11:09

Ok, mein Vater hat mir das eBook grad geholt. Lade es runter.

Befasst das Buch sich auch mit den Themen, die in heikos Buch
schon besprochen wurden, ist da also auch wiederholung drinne?
Oder ist das sowas wie eine Fortsetzung? Weil wenn nicht würde
ich vielleicht nochmal bissian in heikos buch zuerst reinschauen.

Werbeanzeige