Der folgender Code speichert eine Instanz als XML Format, die generierte XML Datei kann man als XNA Content wieder in einem Spiel benutzen. Normalerweise macht man so was nicht, aber im Falle eines Editors oder einer ähnlichen Anwendung ist das schon praktisch.
using Microsoft.Xna.Framework.Content.Pipeline.Serialization.Intermediate;
namespace arusslabs.Xna.Content.Pipeline
{
public static class XmlContentWriter
{
public static void Write(object value, string filePath)
{
XmlWriterSettings xmlSettings = new XmlWriterSettings();
xmlSettings.Indent = true;
using (XmlWriter xmlWriter = XmlWriter.Create(filePath, xmlSettings))
IntermediateSerializer.Serialize(xmlWriter, value, null);
}
}
}
Das einzige nervige ist, dass man die drei Klassen (ContentReader, ContentWriter und die Content Klasse selber) immer gleich halten muss, das heißt die Reihenfolge wie die Eigenschaften in der eigentlichen Klasse angeordnet sind und wie die gelesen oder geschrieben werden.
Das 2D Projekt läuft heiter weiter
und jetzt bin ich dabei einen passenden Editor für meine “Engine” zu bauen. Der Editor ist eine MDI Andwendung für die Docking Spielereien habe ich die WeifenLuo DockPanel Suite genommen.
Für die WinForm XNA Lösung gibts ein gutes Beispiel auf der XNA Creators Webseite WinForms Series 1: Graphics Device.
Naja soweit so gut die basics sind da, jetzt fängt aber der schwieriger Teil an
.
Im Rahmen eines 2D Projekt bei mir auf der Uni schreiben wir zurzeit ein 2D Spiel, da ich meist der Meinung bin ich mach alles selber werkele ich deswegen an einem Editor für 2D Games rum.
Der Plan ist, 2D Sprites zu animieren, z. Bsp. Für Menüs oder Hintergründe in den Spielen und so weiter, dafür eignen sich so gennanten KeyFramed Animations bzw. Inbetween Animations
Hier ist das Modell meines Ansatzes.
(weiterlesen…)
Diese Controller Erweiterung liefert anhand einer per Request übergebenen ID eine S#arp Architecture Entity zurück.
Der Code ist mit der aktuellen (Version 0.7.3) S#arp Architecture kompatibel.
public static T GetEntityFromRequest<T>(
this Controller controller, string key, T actualInstance)
where T : PersistentObject
{
int entityId = 0;
if ((controller.Request[key] != null) &&
(int.TryParse(controller.Request[key].ToString(), out entityId)))
if ((actualInstance == null) || (actualInstance.ID != entityId))
{
T entity = new GenericDao<T>().Load(entityId);
return entity;
}
return actualInstance;
}
// Usage
order.Customer = this.GetEntityFromRequest<Customer>("CustomerId",
order.Customer);
Nun habe auch ich zu der Dunklen Macht gewechselt vor allem, weil das mit XAML so einfach ist ^^
Im Rahmen des Katakomben Projekts muss die Oberfläche dunkel sein weil es überwiegen in dunklen Räumen gearbeitet wird, hier ist der erster Prototyp für die Oberfläche.
Weil die Dunkele Seite mehr Style hat und viel angenehmer für die Augen in später Stunde ist, habe ich prompt meine IDE Einstellungen geändert. Man kann diese selber nach seinen Wünschen anpassen, oder die Einstellungen von www.darksideofvisualstudio.net runterladen.
mattronik support library ist eine .NET 2.0 Bibliothek sie enthält eine Klasse die die Steuerung der seriellen Relais Karten von mattronik verwaltet.
Die Biliothek würde mit I2CMASTER und zwei I2CSLAVE8X getestet.
Hier ist der Quellcode der ersten Beta Version:
mattronik_support.zip
Und ein kleiner usage Beispiel
RelayMaster.Initialize("COM1");
RelayMaster.Default.AllRelayOff();
RelayMaster.Default.RelayOn(CardAdresses.Master, RelayAdresses.R2);
RelayMaster.Default.RelayOff(CardAdresses.Master, RelayAdresses.R2);
Dieser PHP Script kopiert Kunden von VirtueMart nach xt:Commerce.
Getestet mit VirtueMart 1.0.6 auf Joomla! 1.0.10 und xt:Commerce v3.0.4 SP2.1
Einfach den Sript zwieschen den Zeilen 17 und 31 anpassen und ausführen.
download source

Hier ist ein weiterer Screen Saver von mir

dieser spielt eigenständig Pong. Wenn man mitspielen will dann muss man nur die Maus bewegen, mit einem Klick schaltet man den Bildschirmschoner aus.
Source Code
Binaries
(weiterlesen…)
Hier ist eine Klasse die Stunden, Minuten und Sekunden in binärer Form darstellen kann. Hatte es vor für einen Bildschirmschoner zu verwenden.
(weiterlesen…)