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

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

11

15.08.2005, 22:04

1. sind schleifenkontrollen zwar verlockend, sollten aber vermieden werden(von wegen lesbarkeit), Ausnahme: break.

2. gehören zähl var zu der schleife und die spezis. erstellt mal ne int counter außerhalb einer Schleife ;)

3. Übergebe ich jeder Klasse einen Zeiger auf die Elternklasse. Das vermeidet sowas.

4. mag er dich wohl nicht
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

12

16.08.2005, 12:46

danke sehr!
Also gerade noch zur Kontrolle, dass ich 3. auch wirklich richtig verstanden habe. Ich übergebe jeder Klasse einen Zeiger auf CFocus(die Klasse die alle anderen Klassen enthält), hm wieso bin ich nicht aufsowas gekommen^^, danke :)


4.ja leider, wobei ich ihn eh immer mit meinem Firefox besuche...

cya,
Stefan

Dave

Alter Hase

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

13

16.08.2005, 18:03

du könntest auch statische klasen verwenden...

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

14

16.08.2005, 20:37

Zitat von »"Dave"«

du könntest auch statische klasen verwenden...


hm, würde sowas aussehen?

Ich habe das wie es mir Nox gesagt hat eingebaut, nur ein Problem habe ich dort noch und zwar mit den includes, ich muss vor jeder Klasse class CFocus; schreiben.. weil sonst kennt er sie nicht! Ist das schlecht?


cya,
Stefan

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

15

16.08.2005, 20:48

Es lässt sich vermeiden ;) schreib einfach vor den ganzen include Direktiven das class CFocus;
Dann ist die nämlich für die includes deklariert.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

16

16.08.2005, 21:02

Zitat von »"Nox"«

Es lässt sich vermeiden ;) schreib einfach vor den ganzen include Direktiven das class CFocus;
Dann ist die nämlich für die includes deklariert.


Tut mir leid, aber ich weiß nicht genau, wie du das meinst..Die Hauptklasse ist in Focus.h Focus.cpp und eine andere Klasse ist z.B in Camera.h bzw. Camera.cpp..vor welchen include Direktiven soll ich es schreiben?
Ich hab es jetzt über jeder Klasse in der HeaderDatei stehen..

thx

cya,
Stefan

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

17

16.08.2005, 21:05

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
// Der folgende ifdef-Block zeigt die Standardlösung zur Erstellung von Makros, die das Exportieren 

// aus einer DLL vereinfachen. Alle Dateien in dieser DLL wurden mit dem in der Befehlszeile definierten

// Symbol ENGINE_EXPORTS kompiliert. Dieses Symbol sollte für kein Projekt definiert werden, das

// diese DLL verwendet. Auf diese Weise betrachtet jedes andere Projekt, dessen Quellcodedateien diese Datei 

// einbeziehen, ENGINE_API-Funktionen als aus einer DLL importiert, während diese DLL mit diesem 

// Makro definierte Symbole als exportiert betrachtet.


#define DIRECTINPUT_VERSION 0x0800

#include<cstdio>
#include <D3DX9.h>
#include <d3d9caps.h>
#include <dinput.h>

class Engine;

#include "Log.h"
#include "Window.h"
//*****************************************************************************

//GRAFIK

#include "windows.h"
//#include "optionen.h"

#include "InitDirektX.h"
#include "formate.h"

#include "Physik.h"
#include "Physikobjekt.h"

#include "kamera.h"
#include "textur.h"
#include "myModel.h"

#include "Eingabe.h"
#include "Text.h"
#include "Menu.h"

 class Engine
{
public:
 Eingabe* pEingabe;
 DirektX* pDirektX;
 texturverwaltung* ptextur;
 Window* pWindow;
 Modellverwaltung* pModell;
 Menu* pMenu;

 
 Engine(){   Log::InitLog(); pDirektX=NULL; ptextur=NULL; pWindow=NULL; pEingabe=NULL; pModell=NULL; pMenu=NULL;}
    ~Engine(void){}
 void InitEngine();
 void ExitEngine(void);
};
zum bleistift :)
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

18

16.08.2005, 21:21

hm, sorry, aber ich mach leider immer noch was falsch, 169 Fehler^^

Also bei mir siehts mit den includes etwas anderst aus, hier mal als Beispiel die Focus.cpp:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
include <Windows.h>
#include <mmsystem.h>
#include <d3dx9.h>
#include <strsafe.h>
#include <dinput.h>
#pragma warning( disable : 4996 ) // disable deprecated warning 

#include <strsafe.h>
#pragma warning( default : 4996 ) 

#include "Font.h"
#include "Input.h"
#include "GUI.h"
#include "Terrain.h"
#include "Timer.h"
#include "Camera.h"
#include "Log.h"
#include "FoP NorthwindEnt.h"



Und hier die Camera.cpp:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <Windows.h>
#include <mmsystem.h>
#include <d3dx9.h>
#include <strsafe.h>
#include <dinput.h>
#include <iostream>
#pragma warning( disable : 4996 ) // disable deprecated warning 

#pragma warning( default : 4996 ) 

#include "Font.h"
#include "Input.h"
#include "Log.h"
#include "Terrain.h"
#include "Timer.h"
#include "Camera.h"
#include "FoP NorthwindEnt.h"



Und in der Camera.h soll er jetzt die CFocus klasse kennen, ich kann das class CFocus überall hinschreiben und es macht mir Fehler, ausser ich schreibe es direkt über die CCamera Klasse..irgendwie versteh ich die inklude geschichte nicht :help:

cya,
Stefan

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

19

16.08.2005, 21:39

OMG, der Code von mir ist aus der Engine.h also muss ich nurnoch die jeweil includen. Du hast es ja in der cpp...
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Stefan

Alter Hase

  • »Stefan« ist der Autor dieses Themas

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

20

16.08.2005, 23:25

Zitat von »"Nox"«

OMG, der Code von mir ist aus der Engine.h also muss ich nurnoch die jeweil includen. Du hast es ja in der cpp...


ok, jetzt hab ich es gecheckt und hab auch alle includes in einem Header, früher haben mir mal ein paar Leute davon abgeraten, aber ist doch um einiges übersichtlicher..danke für die Hilfe! :)

So eine ganz letzte Frage hätte ich aber noch :rolleyes:
Ich bekomm immer noch so um die 50 Warnungen, waren auch schon davor, die alle ungefähr so aussehen:

C-/C++-Quelltext

1
2
3
4
5
c:\Programme\Microsoft Visual Studio .NET\Vc7\include\cstdio(27) : warning C4995: 'sprintf': name was marked as #pragma deprecated

warning C4995: 'wcscpy': name was marked as #pragma deprecated

c:\Programme\Microsoft Visual Studio .NET\Vc7\include\cwchar(23) : warning C4995: 'vswprintf': name was marked as #pragma deprecated



An was kann das liegen?


cya,
Stefan

Werbeanzeige