Laden...

Forenbeiträge von Fabian E. Ingesamt 258 Beiträge

18.10.2008 - 01:19 Uhr

Du hast in einer Windows Forms Anwedung ersteinmal keine Variable über die du auf deine Form zugreifen kannst (gibts schon aber egal..).
Deswegen legst du dir am besten selber eine an.
Dazu öffnest du die Program.cs.
Dort sollte etwas stehen wie:

[STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MainForm());
        }

Wie du siehst, wird der Application.Run Methode nur eine Referenz einer neuen Instanz der MainForm übergeben. Diese Referenz wird hier aber nicht gespeichert. Das könntest du aber wiefolgt machen:

[STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            MainForm myMainForm = new MainForm();
            Application.Run(myMainForm);
        }

Somit hättest du die Referenz auf deine Form gespeichert. Wenn du die Variable dann noch global machst kannst du auch darauf zugreifen. Schön ist das aber wirklich nicht...
Alternativ kannst du noch über Application.OpenForms alle geöffneten Forms abrufen.

17.10.2008 - 22:52 Uhr

Super! 🙂 Ich hab dich mal im Forum zum Mod gemacht. 😉
Jetzt fehlen hauptsächlich noch Modeler und Programmierer. Hat wer Lust? 🙂

17.10.2008 - 18:02 Uhr

Hallo zusammen,
da ich grade ein sehr perfomancelastiges Programm schreibe, stellt sich mir die Frage, ob es sinnvoll ist eine Variable, die in einer nachfolgenden Schleife verwendet wird, vor der Schleife zu deklarieren. Knackpunkt ist hier die Fragestellung, ob der Compiler das von selber wegoptimiert oder ob er quasi jeden Schleifendurchgang eine neue Variable erstellt.
Kann mir bei dieser Frage jemand helfen?

Gruß

17.10.2008 - 17:05 Uhr

Also ich habe jetzt schonmal unter www.zork3D.de.lv eine kleine Homepage online gestellt.
Elundril aus dem DF ist auch schon registriert.

17.10.2008 - 15:14 Uhr

Zumindest war soetwas mit Events möglich.. Schon mal nach anonymen Methoden gesucht?

16.10.2008 - 17:15 Uhr

Gut 😉 Wenn du das Original-Spiel kennst, weißt du ja was Level-mäßig auf einen zukommt. Du hättest ja dann auch Unterstützung von elundril. (Aus dem DF)

16.10.2008 - 17:08 Uhr

Auf jeden Fall, Interesse besteht immer! 🙂 Als was würdest du denn dann tätig werden? Für das Leveldesign?

Gruß

16.10.2008 - 16:42 Uhr

Ich habe im ersten Post noch eine kleine Demo angehängt, welche die Möglichkeiten von Irrlicht in einem Quake 3 Level veranschaulicht. Natürlich ist die Engine damit noch nicht ausgelastet 😉 Man steuert ganz normal mit WASD und mit der Leertaste kann man rudimentär springen. Mit der linken Maustaste kann man schießen. Die Gegner haben eine Lebensanzeige.

15.10.2008 - 17:02 Uhr

Hallo zusammen,

ich suche nach mehreren Helfern für mein aktuelles Projekt.

Es handelt sich dabei um ein 3D Adventure-Spiel. Als Grundlage wird mein Textadventure: Zork dienen.
Da es sich um ein Textadventure handelt können wir davon natürlich nur die Story übernehmen. Diese ist allerdings sehr ausgereift und kann ohne Probleme übernommen werden.

Das ganze soll in C# oder einer anderen .NET Sprache (Einbindung dann über Dlls) gestaltet werden.
Zur grafischen Ausgabe wird die Irrlicht.NET 3D-Engine verwendet.
Die Engine ist sehr mächtig und auch einfach zu bedienen. Beispielsweise können auch Quake3-Level geladen werden.

Damit kommen wir auch schon zum nächsten Punkt. Die Level werden wie gesagt im Quake3-Format vorliegen und müssen noch designed werden.
Außerdem müssen 3D Models erstellt werden. Dazu braucht es dann noch passende Texturen. (Eventuell kann man auch freie Models verwenden)
Weiterhin brauchen wir noch Sounddateien.

Auf diesen Aufgaben basierend würde ich eine folgende Aufteilung vorschlagen:*Mit mir eingerechnet 2-4 Programmierer *1-2 Grafiker/Modeller *1 Person für Sound *Natürlich wäre es vorteilhaft wenn die Programmierer schonmal was im 3D Bereich gemacht haben. *Auch sollte jemand Erfahrung im Bereich der Shader Programmierung gemacht haben.

Dann kommen wir mal zur etwas genaueren Planung und ToDo-Liste:*Sauberes Klassenkonstrukt, stark OOP orientiert *Oberflächengestaltung, sollte strikt vom Programmkern getrennt sein *Menüdesign (Irrlicht hat eine GUI) *Organisation von 3D Dateien *Organisation von Shadern *Organisation von Sounddateien

Spezielle Probleme:*Wie realisieren wir die dynamische Interaktion mit Objekten im Level (Items, Personen, ...) *Wie realisieren wir die Sprachausgabe von Personen (1. optisch: evtl. Kosole?, 2.akustisch: evtl. Sprecher?) *Wie realisieren wir dynamische Objekt- und Statusveränderungen (Andere Aktionen passieren im selben Raum zu unterschiedlichen Zeiten)

Ich denke diese Aufgaben sollten für den Anfang reichen.

Die Programmierer sollten keine Anfänger sein und sich mit OOP auskennen.

Je nach Aufgabenbereich sind erfoderlich:*Visual Studion 2008 (kann man ja die Expressvariante nehmen, andere Version kleiner 2008 sollten aber auch kein Problem sein) oder andere kompatible .NET Umgebung *3DS Max, Cinema 4D, Blender, oder ähnliche 3D Software *Quake 3 Leveleditor (Ist frei erhältlich) *Profiler Software zum analysieren des Codes auf Schwachstellen (Habe ich, sollte also reichen) *Photoshop, GIMP, oder andere Grafikbearbeitungssoftware für Texturen und ähnliches *Soundprogramm (keine Ahnung was es da gibt)

Wenn wir ein Team gefunden haben, können wir uns entscheiden ob wir uns einen Webserver mit Forum bauen (ist kein Problem, kann ich übernehmen) oder ob wir das DF um Hilfe bitten.

Das ganze sollte Freeware oder da wir unter .NET entwicklen gleich Opensource sein. Da können wir aber noch drüber dskutieren.

Ich denke es sollte mögich sein, innerhalb dieses Jahres noch eine funktionstüchtige Alpha-Version herauszubringen.

Wer Interesse und Zeit hat kann sich ja einfach mal bei mir melden.
Ich würde mich jedenfalls freuen wenn das klappen würde. 🙂

Liebe Grüße,

Fabian

Crosspost im C-Sharp-Forum

25.09.2008 - 11:10 Uhr

Hallo zusammen,

ich habe mir vorgenommen ein kleines 3D-Spiel zu programmieren.
Allerdings wären das meine ersten Erfarungen in 3D. Deswegen hätte ich gerne ein paar Tipps, was ich so zu beachten habe.
Ich dachte an eine kleine Umsetzung meines Textadventures in 3D. Es soll ein Level geben, welches im Format .3ds vorliegt. Zusätzlich sollen Items vorhanden sein. Diese sollten aufgenommen werden können.
Auch Computerspieler sollten im Level vorhanden sein, allerdings nur statisch.
Man sollte in der First-Person-Sicht im Level herumlaufen können. Ein Kampfsystem oder Ähnliches ist erst mal nicht geplant.
Als Engine hatte ich vielleicht an Irllicht gedacht oder gibt es noch was bessere, was für Einsteiger geeignet ist?
Ich habe schon sehr viel in 2D programmiert, aber wie gesagt noch nie irgendwas mit 3D zutun gehabt.

Hat jemand schon einmal ein ähnliches Projekt gemacht?

Ich bin für alle Tipps und Links dankbar.
Auch wenn sich jemand etwas erfahreneres vielleicht für kurze zwischenfragen per icw oder pn bereit stellen könnte wäre das sehr schön 🙂

Vielen Dank schonmal!

28.08.2008 - 16:20 Uhr

nenn es doch wie du willst 😉

26.08.2008 - 23:43 Uhr

Das steht für Taskbar Notification Area. Damit sind die kleinen Symbole rechts unten in der Taskleiste gemeint 😉

26.08.2008 - 21:14 Uhr

Hallo,

ich habe das Problem, das ich über ein Mutex prüfe ob mein Programm schon läuft. Wenn das der Fall ist, dann hole ich es in den Vordergrund. Nun kann es aber passieren, dass mein Programm sich in der TNA "versteckt" gibt es eine Möglichkeit von außerhalb mein Programm wieder sichtbar zu machen?

26.08.2008 - 16:06 Uhr

Events gelten nur innerhalb der Form? Oha das ist natürlich interessant. Dann müsste ich es etwas unschöner lösen. Naja zur Not dann eben mit Hooks, bliebt ja nichts anderes übig 😉 Aber vielen Dank 🙂

26.08.2008 - 00:31 Uhr

Nein, das geht nicht... 🙁 Das Event OnClosing wird leider nicht aufgerufen wenn ich auf den Desktop klicke... 🙁 Warum weiß ich nicht...

25.08.2008 - 19:05 Uhr

Hm... Hat das wirklich geklappt? Leider wird bei mir noch nicht mal das Closing Event aufgerufen wenn ich in ein anderes Fenster klicke... Das ist seltsam... 🙁
Ob das an den Kryptontools liegt? Ich hoffe ja mal nicht.
Aber danke für eure Bemühungen 🙂

25.08.2008 - 18:19 Uhr

Das mit der Form ist so leider nicht möglich, da ich die Komponenten von Kryptontools verwende und daher auch auf das Menü von denen angewiesen bin.

Zur API Sache: Ich bin mir 100%ig sicher dass es so eine Funktion gibt, unter Delphi habe ich sie schon verwendet um genau das zu erreichen. Inwiefern das hier möglich ist weiß ich nicht, die Lösung mit dem Clicked/Closed hört sich aber gut an 🙂

24.08.2008 - 22:18 Uhr

Du könntest mal gucken wie groß deine Form ist, wenn sie minimiert ist. Vielleicht hat sie dann eine feste Größe wie z.B. 0 oder so. Darauf könntest du dann prüfen.

24.08.2008 - 18:53 Uhr

Hallo zusammen,
mir stellt sich folgendes Problem.
Ich habe ein Contextmenü welche ohne jegliches sichtbares Formular auf dem Desktop erscheint.
Dort soll es allerdings auch bleiben solange niemand ein Menuitem anklickt.
Also soll sich das Menü beim Klick auf ein Fenster oder den Desktop nicht automatisch schließen.
Hat jemand eine Idee wie man das realisieren könnte? 🙂
Im Anhang noch ein kleines Bild.

24.08.2008 - 18:33 Uhr

Also ich habe das aktuell im SizeChanged Event gemacht und über this.WindowState nach FormWindowState.Minimized abgefragt. Das klappt wunderbar.

24.08.2008 - 13:51 Uhr

Hallo,

also ich habe deinen Updater jetzt mal in ein aktuelles Projekt eingebaut und bin begeistert 🙂
Ich habe allerdigs an er Administration zu bemeckern. Wenn man dort ein Updatepacket erstellt und dafür relativ lange braucht, dann kappt sich irgendwann die Verbindung mit dem Server. Das führt dann dazu, dass sich das ganze Programm quasi selbst disabled und man es neustarten muss. Das Updatepacket was man erstellen wollte ist futsch. Also im Fall, dass die FTP-Verbindung weg ist, einfach neu öffnen 🙂

Btw, wann kommt die nächste Version? 🙂

17.08.2008 - 22:41 Uhr

Naja also ungefähr jeder der keinen Breitbild-Monitor hat, bekommt dann ein Problem...ich wäre auch dafür das ganze in eine Form zu packen, aber vielleicht etwas überlegter.

09.08.2008 - 13:11 Uhr

@Yeats: Ja, da solltest du eigentlich recht haben 8o
Ist mir auch noch nicht aufgefallen...
Du könntest einfach die Lesitung von der Temperatur abhängigmachen und die Temperatur von den Stäben eben. Dann wärs cool! 🙂

08.08.2008 - 16:08 Uhr

Hallo,

was mich grade etwas gestört hat, war der plötzliche Ausfall der Turbine bei einer Kontrolle... Somit habe ich das Spiel ohne mein zutun verloren... Das ist nicht so schön....
Vielleicht sollte in diesem Fall die Kontrolle abgebrochen werden und später wiederkommen mit der Forderung, dass dann alles okay ist oder so.

03.08.2008 - 17:46 Uhr

Naja Realismus hin oder her, es bringt einem nichts... Was habe ich davon einstellen zu können ob ich 10 20 oder 30 MW haben will wenn immer Werte wie 100 200 oder 300 kommen? 😉

Es wäre auch noch cool wenn man sich einen zweiten Techniker kaufen könnte 🙂

03.08.2008 - 17:13 Uhr

Achja ich würde übrigens eine lineare Steigerung der Leistung über die Trackbar begrüßen 🙂 Mach doch einfach 15 Schritte und bei jedem sinds dann 100 MW mehr.

Hat mich halt nur etwas verwirrt mit der Anzeige 😉 ich würds vielleicht beim Sollwert dazuschreiben.. Oder den Sollwert vielleicht etwas runden... Dann kannst du ja intern mit dem richtigen weiterarbeiten oder so... und halt immer abrunden.

Nochmal zum Problem mit den sortierten Emails.
Hast du da ne Sortierung eingestellt oder was? ODer ist dass das Normalverhalten von dem Control?

03.08.2008 - 17:07 Uhr

Ich hab mir mal grade den Quellcode dazu angesehen und ich würde dir raten deine Komponenten noch etwas umzubennen. Das findest du dich ja selber irgendwann nicht mehr zurecht 😉

Und wie gesagt ich würde halt die Berechnung der Boni für Jim irgendwie anders lösen...
Wie gesagt vielleicht unbegrenzt schneller aber dann noch ein Limit wenn man sagen wir mehr als 5$ abgibt innerhalb einer Zeit, dass dann erst der Chef meckert.
Und wenn der oft genug gemeckert hat wird man gefeuert😉

03.08.2008 - 16:54 Uhr

Es gibt noch einen kleinen Bug im Bezug auf Angebot Nachfrage vom Strom. Dort wird nicht immer richtig erkannt ob ich genug Strom liefere. Wenn sich die Werte um ein paar MW unterscheiden klappt nicht so richtig 😉

03.08.2008 - 12:06 Uhr

Oder man muss wesentlich mehr geld geben^^
Machs doch so, dass sich die Zeit, die er weniger braucht aus der Menge geld berechnet die er bekommt.
Und das die Meldung immer kommt...Oder sag dem User halt irgendwie immer dass Jim jetzt schneller ist.

03.08.2008 - 10:57 Uhr

Ja es bringt etwas ihm geld zu geben. Aber bei mir erst ab 10$. Und auch nur einmal... Danach passiert nichts mehr. Das könnte man vielleicht auch noch ändern.

01.08.2008 - 16:37 Uhr

Was auch noch schön wäre, ist eine Verschleißanzeige der einzelnen Teile, vor allem der Pumpen. So ähnlich wie bei dem Filter.

01.08.2008 - 15:56 Uhr

Und was nervt ist, wenn man gerade die trackbar verschiebt und dann die synchronisierung kommt... dann hat man verloren ohne was gemacht zu haben... Das solltest du auch vorher ankündigen.

Du könntest übringens noch sicherheitsstäbe einbauen. kannst dich ja mal informieren was das ist.

01.08.2008 - 15:36 Uhr

Ja also der filter ist blöd... Da muss man alle wasserpumpen für ausmachen... Aber ich hatte nur noch eine ganz und der typ war beim filter hat gewartet und der reaktor hat sich nich mehr beruhigt und dann ging nix mehr^^

und wenn da steht ich soll meinen reaktor runterfahren, muss ich das dann per SCRAM machen oder geht das auch so?

01.08.2008 - 15:05 Uhr

Ah okay 🙂 was ein bisschen stört, ist das die Emails geordnet sind und zwar nicht nach zeit osndern nach name.

Allerdings bekomme ich bei jedem Start die Fehlermeldung, dass der Backgroundworker schon beschäftig wäre...Kann es allerdings wegklicken und dann gehts ganz normal weiter.

01.08.2008 - 14:43 Uhr

Cooles Programm! 🙂
Aber wie ist denn das Sicherheitspasswort? ^^

31.07.2008 - 16:23 Uhr

Also eigentlich ist das halt dazu gedacht wenn man seinen pc neumacht oder einen neuen pc bekommt.

Du könntest natürlich vorher deinen benutzer umbennen. Dann kopierst du alles un bennest ihn wieder zurück um.
Aber keine ahnung ob das gehen könnte. Ich hab das nur einmal mit einem neuen Pc gemacht.

Gruß

31.07.2008 - 14:50 Uhr

Du könntest das Feature "Übertragen von Einstellungen" von Xp nutzen. Das ist für soetwas gedacht. Dabei werden allerdings nur persönliche Einstellungen kopiert, keine Programme.

31.07.2008 - 13:03 Uhr

Das sind MDI Forms. Such einfach mal danach.

EDIT: Hmm.. zu langsam...

31.07.2008 - 12:17 Uhr

irgendwie habe ich das blöde Gefühl, dass hier zum Zeichnen jedesmal in jedem Zeichendurchlauf neue Objekter erstellt werden. Diese können dann natürlich erstmal nicht freigegeben werden, da sie sonst wie schon gesagt wurde, verschwinden. Falls das oben genannte der Fall ist, würde ich mir noch mal Gedanken über dein Programmdesign machen.

Gruß

30.07.2008 - 12:28 Uhr

Hm... Das verstehe ich jetzt nicht so ganz... Also eigentlich ging es bis jetzt ganz ohne Probleme....

29.07.2008 - 13:59 Uhr

Reicht es unter C# nicht, die Eigenschaft "Doublebuffered" der Form auf true zu stellen?

29.07.2008 - 13:58 Uhr

Wie willst du eine Funktion eine zweite rekursiv aufrufen lassen? 🤔

29.07.2008 - 12:36 Uhr

Wäre natürlich auch möglich, wenn es so sein sollte, schau dir mal den "Guide to C#" an.
Das Teil ist super 😁 🙂

29.07.2008 - 12:28 Uhr

Ich habe so das Gefühl, er fragt nach Delegates... So kommts mir jedenfalls vor. Möchtest du das Ergebnis von Funktion 1 übergeben oder die ganze Funktion, sodass du sie dann egal um was es sich handelt in der zweiten aufrufen kannst?

29.07.2008 - 12:08 Uhr

Wo genau willst du den denn einlesen?Einfach so?
Oder willst du ihn in ein Feld schreiben, z.B. eine Textbox?
Wenn du es ohne Controls machen willst kannst du ja auf die Events der Form reagieren, wenn eine Taste gedrückt wurde. Diese kannst du abfangen und speichern.

29.07.2008 - 10:46 Uhr

Okay danke. Muss ich es wohl so lassen wie es jetzt ist. Ist ja auch okay.
Mal eine Frage: weiß denn jemand den Hintergrund warum das nicht geht?

29.07.2008 - 10:02 Uhr

for (int i = 2; i < GruppenArr[j].Count; i++)
{
      Writer.WriteStartElement(Convert.ToString(i-2)); // Hier klappts nicht
      Writer.WriteString(GruppenArr[j][i]);
      Writer.WriteEndElement();
}

Er meckert, dass man das Zeichen "x" (also irgendeine Zahl) nicht als Knoten verwenden könnte...

Ich hab es jetzt vorläufig so gelöst, dass ich ein einzelnes Zeichen vornedran gesetzt habe und jetzt gehts. Optimal ist das aber nicht.

29.07.2008 - 09:34 Uhr

Hallo zusammen,

ich versuche gerade ein paar Daten in einem XML-Dokument zu speichern und stoße dabei auf das Problem, dass mein Debugger meint er wolle keine Zahlen als Schlüssel bzw. Knoten im Xml-Dokument speichern.
Nun stellt sich mir die Frage, ob ich auf irgendeine Weiße das ganze umgehen kann...
Ziel ist es eine Aufzählung in der Xml-Datei zu haben.

Kann mir jemand helfen? 🙂

29.07.2008 - 09:15 Uhr

Soweit ich weiß bekommst du mit OpenSubKey auch keine Schreibrechte wenn du es so machst. Übergib mal als zweiten Parameter ein true. Das ist eine überladene Version wo man die Zugriffsrecht enoch bestimmen kann.

28.07.2008 - 23:56 Uhr

Also ich habe es jetzt so gelöst:
FileDescription : FileVersionInfo « File Stream « C#
Das klappt wunderbar. 🙂