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

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

91

13.05.2007, 02:42

Nachdem Editoren und Rollenspiele grade "In" zu sein scheinen will ich auch mal mitmachen *g* Habe heute endlich eine brauchbare Version eines Tileseteditors zusammengekratzt, bisher funktioniert alles ganz gut =)


(Link)


Eckdaten:
- Geschrieben in C#
- Geschrieben für eine C++ TileEngine
- Sämtliche Dateiformate XML basiert
- WinForms erweitert durch die Superpraktische WeifenLou Docking Suite
- Pseudoproduktiver privater Einsatz
- Tilesets aus dem Pack von Abrexxes (Danke!)

Chase

Alter Hase

Beiträge: 753

Wohnort: Nagaoka / Darmstadt / Düsseldorf

Beruf: fauler Studi

  • Private Nachricht senden

92

13.05.2007, 11:30

Gurke, das hast du doch nie im Leben an einem Tag geschrieben :) Sieht aber gut aus.
"Have you tried turning it off and on again?"

Sheddex

unregistriert

93

13.05.2007, 11:36

Ich denke er meint dass es heute diesen Zustand erreicht hat ;)

Sieht aber echt gut aus, Respekt! :)

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

94

13.05.2007, 16:08

Nein, nicht nur heute. Das grundlegende Framework (das Interface sozusagen) stand schon vorher. Die gestrige Arbeit war sozusagen nur das Fenster für den Tileseteditor.

95

16.05.2007, 16:05

so ich zeige mal einen Codefetzen von meinem Framework für die Win32API.
Ich benutze lediglich die WInAPI. Ich hab alle Klassenselbst geschrieben.

Im moment muss man teilweise noch Callbacks nutzen, aber spätestens morgen bin ich mit einem System fertig, dass man keine Callbacks mehr benutzen muss.

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
#include "myWinAPI++.h"

class myMain: public myWinAPIMain
{
public:
    int myWinMain()
    {
        BMP bild;

        bild.load(L"programmicon.bmp");
        CCOLOR transparenz(255,255,255);

        WINDOW fenster;

        fenster.setBounds(0,0,WS_OVERLAPPEDWINDOW,WS_OVERLAPPEDWINDOW,WS_OVERLAPPEDWINDOW,L"OpenWinFTP",iCmdShow);

        fenster.setIcon(bild.toIco(transparenz));

        fenster.create(WndProc,hInstance,false);
        return fenster.mWpA;
    }
};

#include "MyMain.h"

class myMsgLoop: public MessageLoop
{
private:
    WINFILE datei ; 
    BUTTON  button;
    GDI     gdi   ;
    EDIT    edit  ;
    FILEMANAGER manage;
    LineNumberReader lnr;
    COMBOBOX combox;
    EDIT hey;
    std::wstring value;
public:
    void on_create()
    {
        combox.setBounds(100,100,100,100,L"dgdfgvedg");
        combox.create(hwnd);
        combox.add(L"JI");
        combox.add(L"Geh baden");
        combox.add(L"JI");

        datei.open(L"test.txt");
        datei.writeA("Hallo");
        datei.close();

        manage.copy(L"test.txt",L"test2.txt",true);

        hey.setBounds(200,200,200,200,L"");
        hey.create(hwnd,0,0,0);

        edit.setBounds(300,300,300,300,L"");
        edit.create(hwnd);

        value = lnr.readLine();
        value = lnr.readLine();

    }
    void on_draw()
    {
        gdi.init(hwnd);
        gdi.drawText(0,0,L"HallO");
        gdi.end(hwnd);
    }
    void on_lmousebutton()
    {
        edit.cut();
    }

};

LRESULT CALLBACK WndProc (HWND hwnd, UINT message,WPARAM wParam,LPARAM lParam)
{
    setMessageClass<myMsgLoop>(hwnd,wParam,lParam,message);
    return DefWindowProc(hwnd,message,wParam,lParam);
}


Dieser Code erzeugt mit hilfe meines Frameworks ein Fenster.
Erzeugt 2 Editfelder, 1 Combobox + einem LineNumberReader der Zeilen weise ne Datei ausließt, ne WinFile Instanz die Lesen und Schreiben kann und ne Instanz von der Klasse FileManager die Dateien hin und her schiebt. Das Framework hat nbatürlich noch viel mehr Klassen aber ich denke das gibt mal einen ganz guten Überblick vom jetzigen Stand.
So und wie findet ihrs?
Und was haltet ihr davon?
Das Böse ist des Menschensbeste Kraft - Friedrich Nietzsche

96

16.05.2007, 18:18

Sieht sehr übersichtlich aus und scheint gut verwendbar zu sein. Allerdings sehe ich keinen Sinn mehr, die Winapi zu verwenden. Wozu gibts .NET oder Java...

aber als Lernprojekt sehr schön.

97

16.05.2007, 19:45

Zitat

Sieht sehr übersichtlich aus und scheint gut verwendbar zu sein.

Danke

Zitat

Allerdings sehe ich keinen Sinn mehr, die Winapi zu verwenden. Wozu gibts .NET oder Java...


Guck genauer hin.
Mit Java kannst dus nicht vergleichen. Java erreicht niemals die Funktionalität eines Windowsmanagers weil Java veile Kompromisse eingehen muss um eine fast gänzliche Betriebssystemunabhängigkeit gewährleisten zu können. Aber das soll nicht so klingen als ob ich was gegen JAVA hab ich mag sowohl die Programmiersprache Java als auch die Plattform Java!
Ich zitiere hier mal dot aus nem anderen Thread hier im Forum:

Zitat


jedenfalls kann ich dir soviel sagen: du wirst keine bibliothek finden, die auf jedem OS alles kann was das OS kann. alle bibliotheken die auf mehreren plattformen funktionieren sollen, müssen eben einen komprimiss eingehen.


Und zu .NET: .NET ist auch Win32API implementiert weil es die einzige Schnittstelle zu WINDOWS ist alles andere baut auf ihr auf. Somit kommt selbst .NET nicht an den Umfang als WIndowsmanager ran. Wobei .NET natürlich mehr kann als nur ne gekapselte WinAPI bereitstellen ich spreche mal nur von gekapselten COM, ASP,...

Für Officeanweundungen macht es jetzt keinen Unterschied (wobei ich mir ziemlich sicher bin gelesen zu haben, dass selbst Microsoft ihr Office Paket nicht .NET implementiert sie bieten lediglich eine Art Schnittstelle zu .NET an damit man ihre Officeprodukte mit .NET Sprachen beprogrammieren kann) Da würd ich wohl auch eher .NET nehmen.
Aber bei Programmen die wirklich Betriebssystemspezifisch sind braucht man doch wirklich die totale Kontrolle, die man nur mit der WINAPI in diesem Maße hat.
Deshalb zielt mein Framework nicht wie .NET darauf ab alles abzunehmen sondern dass man reine WinAPI auch mit meinem Framework mischen kann und somit mein Framework nur für bedingte DInge eine Hilfe darstellt um eher rudimentäre Dinge wie GUI und FILEMANAGER abzudecken. Aber alle meine Klassen haben Methode wie

C-/C++-Quelltext

1
HWND getHwnd();

und so weiter!

Deshalb denk ich sehr wohl dass auf der Welt die WinAPI nicht sinnlos ist ;-)
Das Böse ist des Menschensbeste Kraft - Friedrich Nietzsche

98

16.05.2007, 22:51

Nenn mir mal ein Beispiel, wo ich das im Game Programming Bereich wirklich brauche und wo man mehr als 2 FPS rausholen kann.

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

99

17.05.2007, 09:10

Schreiben eines Editors :D

Nur weil wir hier auf Spieleprogrammierer.de sind, heisst das nicht das wir einen eingeschränkten Horizont haben.

100

17.05.2007, 09:52

Zitat

Nenn mir mal ein Beispiel, wo ich das im Game Programming Bereich wirklich brauche und wo man mehr als 2 FPS rausholen kann.


Ähm ich habe nie vom Gameprogramming geredet!

Aber im Gegensatz zu Java kann man garantiert mehr als nur 2Fps rausholen, auch im Gameprogramming bereich. Aber C++/CLI mit DirectX oder C++ WinAPI ist Hemd wie Hose.
Und um ein popeliges leeres Fenster für DirectX oder OpenGL zu erzeugen braucht man ja nun wirklich kein .NET sondern nur Copy & Paste.

Aber wie gesagt das Framework ist ja nicht für den Gameprogramming bereich ;-)

Aber jeder hat da seine eigene Meinung und ich wollte jetzt auch keine Grundsatzdiskussion auslösen ^^

Gebt mir lieber noch ein bisschen Feedback :D
Das Böse ist des Menschensbeste Kraft - Friedrich Nietzsche

Werbeanzeige