ZweiDe
Übersicht

Gehe zu Seite Zurück 1, 2, 3 ... 16, 17, 18, 19, 20 Weiter
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kleine Meldung am Rande: ZweiDe ist jetzt gratis und OpenSource!
Hier gibts das Paket: http://www.fetzenet.de/zweide/dl/ZweiDeSource.zip. Zum Einstieg kann man http://zweide.fetzenet.de konsultieren, das ein Manual bereit hält (Vorsicht, Website außer Newsmeldung aus Zeitmangel nicht aktualisiert!). Um das im Archiv enthaltene Project-Template zu nutzen, einfach das Template-Zip in den entsprechenden ProjectTemplates-Ordner von Visual Studio kopieren. Es sollte dann unter "Neues Projekt" verfügbar sein. Kleine Einstiegshilfe für Nicht-C#'ler:
Viel Spaß damit. ![]() Edit: Falls ihr Visual Studio 2010 nutzt, müsst ihr in den Projekteigenschaften des Startprojekts das Zielframework auf .Net 3.5 stellen. .Net 4.0 ist scheinbar nicht mehr vollständig abwärtskompatibel. |
||
- Zuletzt bearbeitet von Fetze am Di, Jun 01, 2010 19:56, insgesamt 2-mal bearbeitet
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh cool, doch so schnell ![]() Dankeschön! MfG DaysShadow |
||
Blessed is the mind too small for doubt |
![]() |
coolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wow cool :O
Vielen dank! |
||
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project! "Eigenzitate sind nur was für Deppen" -Eigenzitat |
![]() |
ComNik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oha Danke ![]() Allein der Lerneffekt... Ich bin lesen... [Edit:]Hmm, C# wirkt ganz schick eigentlich.[/Edit] lg ComNik |
||
WIP: Vorx.Engine |
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ComNik
Ja, schick ist C# allemal ![]() ![]() @All Was den Lerneffekt betrifft: Lest mit Vernunft. Ich hab seit dem Grundentwurf von ZweiDe eine ganze Menge dazugelernt, aber pragmatischerweise nicht alle Erkenntnisse auch rückwirkend umgesetzt, weils "so halt auch geht" und alle meine Folgeprojekte darauf basieren. Ach, und die Testprojekte in der Projektmappe sind nicht gerade aufgeräumt. Sind, wie der Name schon sagt, hackige Testprojekte, die ich zur Entwicklung verwendet hatte. Sie sind eigentlich nur deswegen dabei, damit man ne einfache "Anwendungsreferenz" hat, also mal gucken kann, wie man diverse ZweiDe Funktionen so nutzt. Ansonsten: Wenn ihr Fragen zur Benutzung habt oder eure ersten Schritte / Erkenntnisse präsentieren wollt, immer her damit! Freue mich über jeden Kommentar ![]() |
||
Sora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Finde ich auch eine prima Idee. Wollte ebenfalls schon lange mal ein bisschen in C# reinschnuppern, aber die ersten Schritte ewig nur im Konsolenfenster zu verbringen, lässt die Motivation immer schnell wieder sinken, mit ZweiDe macht das Lernen mit einer Art Basic Feeling wesentlich mehr Freude. Danke.
Eine Frage habe ich auch noch gleich, hatte bisher die alte C# 2008 Express Edition drauf, dort lief alles super, jetzt habe ich vorhin auf die 2010er Version aktualisiert und erhalte stets "Der Typeninitialisierer für \"Fetze.Module.ZweiDe\" hat eine Ausnahme verursacht." Habe alles genauso wie zuvor gemacht, nur das Temptate logischerweise nach ..\Visual Studio 2010\Templates\ProjectTemplates\ kopiert. Weiß jemand was ich falsch gemacht haben könnte? |
||
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dieselbe Meldung bekomme ich auch, hab aber dann erstmal nicht weiter etwas versucht, da ich die 08er Version ebenfalls noch drauf habe.
Wüsste aber dann auch gern wo der Fehler evtl. liegen könnte. MfG DaysShadow |
||
Blessed is the mind too small for doubt |
![]() |
coolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe auch noch die 08er Version drauf und es funktioniert ohne Probleme. Nur das Beispiel mit den Kollisionen (2er ists soweit ich weiß) erzeugt ein "Windows hat ein Problem festgestellt" beim beenden. Der Rest funktioniert tadellos.
Ich bin immernoch begeistert, ich denke schon fast, dass ich komplett auf C#+ZweiDe umsteige, ist ja quasi BMax für C# ![]() |
||
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project! "Eigenzitate sind nur was für Deppen" -Eigenzitat |
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
Uff, mit VS2010 gehts nicht mehr? Das ist komisch. Ich kann leider nicht viel dazu sagen, da ich selbst ebenfalls noch VS08 nutze.. theoretisch sollte VS aber doch abwärtskompatibel sein? o_O
Nungut. Ich korrigiere den Beitrag oben mal auf VS 2008. Kann derweil mal jemand mit VS2010 und etwas C#-Vorkenntnis die Projektmappe (also nicht das Template) komplett durchkompilieren und schauen, ob sich da eine Problemursache feststellen lässt? Ist jetzt zwar nicht direkt dringend, aber es würde mich schonmal interessieren, was da los ist. Möglicherweise funktioniert einfach nur das Projekttemplate (mit VS08 erstellt) in VS10 nicht mehr. Ich möchte außerdem noch hinzufügen, dass die Beispiele aus der Demoversion oder gekauften Vollversion mit dem Sourcecode Release möglicherweise nicht mehr kompatibel sind, da sich da schon noch einiges geändert hat. Wenn da was nicht geht, einfach ignorieren und in nem neuen Projekt schauen, wie es jetzt geht. Sollte in den meisten Fällen analog / identisch / sehr ähnlich sein. coolo, ich vermute, dass in deinem Fall sowas das Problem ist - die Kollisions-Extension nutze ich nämlich in genau der releasten Version für Nullpunkt ![]() Danke soweit für die Resonanz! ![]() |
||
![]() |
ComNik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich weiss nich ob das hilft, aber Rechtsklick -> Projektmappe erstellen endet in meinem VC# mit einem Erstellen erfolgreich.
Testprojekt Builds haben aber das gleiche Problem ![]() lg ComNik |
||
WIP: Vorx.Engine |
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
Erstellen ist nicht das Problem, beim Ausführen kommt der Fehler.
MfG DaysShadow |
||
Blessed is the mind too small for doubt |
- Zuletzt bearbeitet von DaysShadow am Di, Jun 01, 2010 19:02, insgesamt 2-mal bearbeitet
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was ist jetzt genau das Problem? Schlagen die Builds der Testprojekte fehl, oder tritt ein Fehler auf, wenn sie erstellt sind und gestartet wurden?
1. Wenn letzteres der Fall ist: Wenigstens im Debugmodus sollten bei Kompilierung innerhalb der Projektmappe weitere Informationen abrufbar sein, also genaue Position des Fehlers im Code oder weitere Details. Kann das mal wer debuggen? 2. Wenn ersteres zutrifft, könnte sich ein Blick in die Projektmappenkonfiguration oder die Eigenschaften der betroffenen Projekte lohnen. Edit: Okay, danke DaysShadow. Goto 1. |
||
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
"Der Typeninitialisierer für "Fetze.Module.ZweiDe" hat eine Ausnahme verursacht."
ZweiDe.Init ruft das hervor. Ahja, Fetze, wäre eine Befehlsübersicht möglich oder gibt es die schon? Eine pdf mit sowas fänd ich prima, wenn es nicht zuviele Umstände macht. MfG DaysShadow |
||
Blessed is the mind too small for doubt |
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm... nichts genaueres..?.. nagut. Ich lade mir mal ebend VS2010 Express und sehe mir das näher an. Melde mich zurück.
Zur Befehlsübersicht würde ich vorschlagen, du nutzt die Klassenansicht von Visual Studio, die ist eigentlich recht gut benutzbar und erfüllt im Wesentlichen denselben Zweck. Entweder findest du sie standardmäßig rechts im Layout oder du kannst sie über das Ansicht- oder Fenster-Menü einblenden. ![]() Wenn man ne Funktion o.Ä. gefunden hat, die passend / interessant klingt, einfach doppelt drauf klicken und man ist direkt im zugehörigen Codefile. Geht natürlich nur in der Projektmappe des Archivs oder anderen Projektmappen, die die ZweiDe-Projekte beinhalten. Für alle anderen sind die aus den <summary>-Kommentaren im Code erzeugten .xml-Dokumentationsdateien, die dann zu den meisten Befehlen in der Autovervollständigung (für wenigstens eine Überladung der Funktion) Kommentare anzeigen. Alles in allem im Vergleich zu anderen Modulen relativ gut dokumentiert ![]() Wem das so nicht reicht und wer unbedingt noch eine Nicht-VS-Funktionsübersicht haben will, kann sich mit Tools wie "Sandcastle Helpfile builder" auch eine .html- oder .chm-Hilfedatei generieren lassen. Würde aber eher davon abraten, das macht viel Arbeit und ist letztendlich auch nicht viel besser als die Klassenansicht in VS. ![]() |
||
- Zuletzt bearbeitet von Fetze am Di, Jun 01, 2010 19:12, insgesamt einmal bearbeitet
Sora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also der Fehler kommt direkt schon, wenn du nachdem du ein neues Projekt -> ZweiDe erstellt hast, versucht den Code zu kompilieren.
Vielleicht hilft dir das: Code: [AUSKLAPPEN] Unbehandelte Ausnahme: System.TypeInitializationException: Der Typeninitialisier er für "Fetze.Module.ZweiDe" hat eine Ausnahme verursacht. ---> System.IO.FileLo adException: Die Assembly im gemischten Modus wurde während Version v2.0.50727 d er Laufzeit erstellt und kann nicht während der 4.0-Laufzeit ohne zusätzliche Ko nfigurationsinformationen geladen werden. bei Fetze.Module.ZweiDe..cctor() --- Ende der internen Ausnahmestapelüberwachung --- bei Fetze.Module.ZweiDe.Init(Int32 gfxWidth, Int32 gfxHeight, Int32 gfxBitDep th, Boolean isWindowed, Int32 swapInterval, Boolean noResize, Int32 aaLevel) bei ZweiDeProjectTemplate1.Program.Main(String[] args) in ***visual studio 2010\Projects\ZweiDeProjectTemplate1\ZweiDeProjectTemplate1\Pr ogram.cs:Zeile 15. |
||
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
Okay Leute, Problem gefunden: Ihr müsst unter Viual Studio 2010 in den Projekteigenschaften des zu startenden Projekts unter "Anwendung" als Zielframework .Net 3.5, 3.0 oder 2.0 angeben. Das funktioniert auch beim Projekttemplate! Werde am hochgeladenen Source aber erstmal nichts ändern, da das beim Konvertieren zu einer Visual Studio 2010 Solution ohnehin abgeändert wird.
Der Auslöser des Problems ist vermutlich eines der Zugrundeliegenden Tao.*.dll-Module. Das Tao-Framework wrappt OpenGL, Glfw, FreeType, etc. für C# und ist auf .Net 2.0 ausgelegt. Mit .Net 4.0 wurde da wohl irgendwas inkompatibel. Ließe sich vllt mit zusätzlichen Manifestdateien oder einem 4.0-Rebuild des Tao Frameworks beheben, aber das müsst ihr selbst machen, wenn ihr unbedingt .Net 4.0 wollt, für sowas fehlt mir grad echt die Zeit ![]() Vermutlich werdet ihr aber mit .Net 3.5 gegenüber 4.0 nicht wirklich etwas vermissen. ![]() |
||
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
coolo hatte per PN ein, zwei Fragen zu ZweiDe gestellt. Mit seiner Zustimmung poste ich mal nen Auszug daraus hier, falls noch andere ähnliche Fragen haben:
coolo hat Folgendes geschrieben: Wie ist es möglich eine "Punkt auf Textur" Kollision zu programmieren, ohne die Textur vorher in eine Pixmap umzuwandeln, da die Textur ständig geändert wird ist es nicht möglich das "vorraus" zu berechnen. Hierbei wäre nur die Information "kollidiert" und "kolllidiert nicht". Zur Kollision: ZweiDe unterstützt keine Per-Pixel Kollision wie BlitzMax, da Kollisionen per-Pixel zu prüfen in den allermeisten Fällen langsam, unflexibel und sehr beschränkt ist. Kollisionen musst du mit der ZweiDeXT.Collision-Extension prüfen, ein entsprechendes Anwendungsbeispiel findest du in Testprojekt2 aus der Download-Projektmappe. ![]() Das Kollisionssystem in ZweiDe basiert auf konvexen Polygonen und Kreisen (in beliebiger Kombination): Man definiert ein Collision.Shape aus beliebig vielen Primitives. Das kann man dynamisch zur Laufzeit tun oder ein fertiges Shape aus einer (lesbaren Text-)Datei einlesen. Dann instanziiert man ein Collision-Objekt unter Angabe eines Collision.Shape und ruft initial und bei sonstigen Veränderungen von Position, Rotation oder Skalierung dessen Update-Methode auf. Um zwei Collision-Objekte auf Kollision zu prüfen, benutzt man obj1.CollideWith(obj2, ...), wobei man sich optional zusätzlich zu Kollidiert/Nichtkollidiert die Kollisionspunkte oder den MTV zurückgeben lassen kann. Der MTV ist der Vektor, um den Objekt 1 verschoben werden muss, damit gerade so keine Kollision mehr stattfindet. Reagiert man in Kollisionen durch Anwendung des MTV jedes Frame, bekommt man den typischen "Sliding"-Effekt zu sehen: Objekt 1 "schlittert" an der Oberfläche von Objekt 2 entlang. Im Testprojekt2 sind entsprechende zwei Zeilen im Code unter "#region Collision object 0" auskommentiert. coolo hat Folgendes geschrieben: Außerdem noch eine andere Frage: Wie sieht es mit Platformunabhängigkeit aus? Wie viel Aufwand wäre es ZweiDe auf Mac OS X zum laufen zu bringen? Hast du das schon probiert?
Was die Plattformunabhängigkeit betrifft: Solange du, wie standardmäßig der Fall, irrKlang für Sound nutzt, ist ZweiDe ziemlich sicher nicht unter Mac oder Linux lauffähig, da die irrKlang.Net Assembly dies nicht unterstützt. Wenn du irrKlang rausschmeißt und dein eigenes Soundsystem (zB. mit Tao.OpenAL) schreibst, erhöhst du die Chance, aber letztendlich bleibt es trotzdem beim Vielleicht. Schau dir diesbezüglich mal das "Mono"-Projekt zur Portierung von .Net auf Linux und Mac an. Letztendlich würde ich aber sagen: Solange du nicht einiges an C#- .Net- und ZweiDeInterna-Erfahrung hast, würde ich dir vom Versuch einer Portierung aus Frustgründen abraten. Das wird sicher nicht einfach. Denkbar bleibt es. Kleine Anmerkung am Rande: Wer gerne seine Fortschritte und Experimente mit ZweiDe vorstellen möchte, kann dies von mir aus auch gerne in dem Thread hier tun, thematisch passts ja gerade - dann muss dafür nicht jeder seinen eigenen Thread eröffnen. |
||
![]() |
ComNik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Huhu,
zur Antwort habe ich eine allgemeine Frage ![]() Gibt es eine Methode zum verhindern dieses Sliding effekts? Oder muss das mit Reibung gelöst werden? [Edit:]Danke, dann klappt das ja schonmal^^.[/Edit] Danke, ComNik |
||
WIP: Vorx.Engine |
- Zuletzt bearbeitet von ComNik am Do, Jun 03, 2010 21:47, insgesamt einmal bearbeitet
![]() |
Fetze |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Sliding-Effekt ist, anders als das in deiner Antwort jetzt klingt, kein Fehler sondern logische Konsequenz des Systems. Es zeigt, dass das Kollisionssystem ein Eindringen des kollidierten Objekts ordnungsgemäß verhindert. Natürlich ist es am Programmierer, auf eine festgestellte Kollision auch ordnungsgemäß zu reagieren, denn Kollisionsabfrage impliziert noch keine Physik. Wer will, kann natürlich physikalische Berechnungen wie (von dir genannt) Reibung, Abprallen von Objekten, etc. implementieren, je nach Bedarf. | ||
![]() |
coolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() Erster Erfolg meines Spiels. Die Landschaft ist bereits editierbar. Das heißt, es ist ohne weiteres möglich Landschaftsstücke zu entfernen, hinzuzufügen und anzumalen. Auf Kollision kann auch geprüft werden (Kreis, Linie, Rechteck, Punkt und Texture[=Sehr langsam da hier auf Pixmap Basis gearbeitet wird]). Als nächstes kommen die Gameobjects (und somit auch der Spieler), danach ein Mapeditor. Ach noch zwei kleine Fragen Fetze: 1) Wie verwendet man diese UpdateGrids, diese scheinen ja sehr cool zu sein. Ich bin aber zur Hölle nicht in der Lage diese zu verwenden, andauernd kommt irgendeine Syntax Fehlermeldung. Ein kleines Sample würde mir genügen EDIT: Nun bin ich per Bruteforce auf die Lösung gekommen. Ich bin in C# noch nicht so bewandert. 2) Wie verwendet man die CSScript Klasse, da sind so viele versch. Konstruktoren usw. da kenne ich mich leider auch nicht aus. Ein 10 zeilen Sample wäre hier auch schön. Ich bin mir nicht sicher was an diesen Zeilen falsch ist: Code: [AUSKLAPPEN] script=new CSScript(path,null);
del=script.CreateDelegate(System.Type.GetType( "void", true, true ), "Update","Player"); del.DynamicInvoke( null ); Die dazugehörige Klasse schaut folgendermaßen aus: public class Player { public static void Update() { System.Console.WriteLine( "PLAYER UPDATE" ); } } |
||
http://programming-with-design.at/ <-- Der Preis ist heiß!
That's no bug, that's my project! "Eigenzitate sind nur was für Deppen" -Eigenzitat |
Gehe zu Seite Zurück 1, 2, 3 ... 16, 17, 18, 19, 20 Weiter
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group