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

11

03.04.2012, 14:56

Ich glaub ich machs erstmal nur für Windows:D

Beiträge: 142

Wohnort: Sachsen

Beruf: Student

  • Private Nachricht senden

12

03.04.2012, 15:50

Hallo

wäre es für cross-platform nicht ratsam ein compiler á la gcc (oder auf Windows MinGW) zu verwenden? damit man auf allen platformen die gleichen compiler zu haben.

aber die spielidee ist gut, läuft dank WINE auch auf Linux ;)

hat einen touch von nethack :D

MfG
sr

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

13

03.04.2012, 15:57

wäre es für cross-platform nicht ratsam ein compiler á la gcc (oder auf Windows MinGW) zu verwenden? damit man auf allen platformen die gleichen compiler zu haben.

Das ist nicht nötig. Wir benutzen in einem Projekt Visual Studio für Windows, Code::Blocks mit GCC für Linux und XCode 4 für MacOS(ich weiß leider nicht welchen Kompiler mein Kollege nutzt).
Nachteile hat es in meinen Augen keine, aber einen großen Vorteil: man kriegt mit jedem Kompiler andere Warnungen. Wenn man immer auf höchster Warnstufe kompiliert findet man dadurch den ein oder anderen Fehler, den man sonst nicht entdeckt hätte. :thumbsup:
"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?

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

14

03.04.2012, 16:40

Das ist nicht nötig. Wir benutzen in einem Projekt Visual Studio für Windows, Code::Blocks mit GCC für Linux und XCode 4 für MacOS(ich weiß leider nicht welchen Kompiler mein Kollege nutzt).
Nachteile hat es in meinen Augen keine, aber einen großen Vorteil: man kriegt mit jedem Kompiler andere Warnungen. Wenn man immer auf höchster Warnstufe kompiliert findet man dadurch den ein oder anderen Fehler, den man sonst nicht entdeckt hätte. :thumbsup:

Es hat einfach den Nachteil, dass sich die Compiler in manchen Punkten unterscheiden. Das ist jetzt nicht allzu extrem, aber es gibt schon ein paar Dinge, die beim einen Compiler fehlerfrei laufen und bei denen der andere meckert. Also ich persönlich würde für ein größeres Projekt lieber den gleichen Compiler verwenden.

15

03.04.2012, 23:08

Mit den Keystates läufts flüssig. ;)

16

04.04.2012, 01:12

Ich hab das jetzt mal mit den Keystates probiert aber wieder entfernt weil ichs so probiert habe, dass man für jede Bewegung auf die Taste drücken musste...
Wie kann man das realisieren mit dem "flüssigen" Ablauf?

17

05.04.2012, 23:48

So hab dann mal ein neues Feature hinzugefügt:
Das KEY-System(Schlüssel-Schloss-Prinzip)!
Auf der Map gibt es jetzt Schlösser (grauer Hintergrund mit rotem x) die man nur mit einem Schlüssel (gelb) öffnen kann, wenn man mindestens einen im Inventar hat.
Der Link

Freue mich wie immer auf Feedback :D

Darkrel

Treue Seele

Beiträge: 143

Wohnort: Zürich

Beruf: Student ETH Zürich

  • Private Nachricht senden

18

06.04.2012, 12:05

Sehr cool ;) Freue mich schon auf ein fertiges Spiel.
:cursing:

19

06.04.2012, 12:19

Also das war so gemeint:
Du hast für jede Taste eine Variable, z.B. bool a.
Wenn die Taste "A" gedrückt wird, wird die Variable a auf true gesetzt.
Erst, wenn "A" _losgelassen_ wurde, wird a wieder auf false gesetzt.
Dann implementierst du dass, solange a == true ist, sich die Spielfigur nach links bewegt.
Gruß,
Sound~Wave

20

06.04.2012, 14:02

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
//Gameloop
    do
    {     
          if(kbhit()&&!wPressed&&!sPressed&&!aPressed&&!dPressed)
          {   
          eingabe=getch();      
          switch(eingabe)
          {
             case 'w':
             case 'W':
                wPressed=true;
                sPressed=false;
                aPressed=false;
                dPressed=false;
                break;
             case 's':
             case 'S':
                wPressed=false;
                sPressed=true;
                aPressed=false;
                dPressed=false;
                break;
             case 'a':
             case 'A':
                wPressed=false;
                sPressed=false;
                aPressed=true;
                dPressed=false;
                break;
             case 'd':
             case 'D':
                wPressed=false;
                sPressed=false;
                aPressed=false;
                dPressed=true;
                break; 
             case 'i':
             case 'I':
                if(!Game.GetInventoryState())
                { 
                   do
                   {                         
                      Game.ShowInventory();
                      eingabe=getch();                   
                   }while(eingabe!='i'&&eingabe!='I');
                }
                if(Game.GetInventoryState())
                {
                   Game.CloseInventory();     
                }
                break;                         
          }
          }
          else
          {
             wPressed=false;
             sPressed=false;
             aPressed=false;
             dPressed=false;              
          }
          if(wPressed==true)
          {
             Game.MovePlayer(0,-1);     
          }
          else if(sPressed==true)
          {
             Game.MovePlayer(0,1);     
          }
          else if(aPressed==true)
          {
             Game.MovePlayer(-1,0);     
          }
          else if(dPressed==true)
          {
             Game.MovePlayer(1,0);     
          }
          Game.Render(Game.GetPlayerX(),Game.GetPlayerY());
    }while(1);

Ich hab das jetzt so gelöst, aber das ist auch nicht das Wahre, da es arg ruckelt und der Spieler sehr langsam ist und die Steuerung nicht sehr genau.

Werbeanzeige