C# VB Code konvertieren?

Cartman999

Lieutenant
Registriert
Aug. 2007
Beiträge
822
Ich habe diesen VB-Code gefunden und möchte ihn gerne nach C# konvertieren. Ich habe es bereits mit einigen Tools versucht jedoch hat das nie funktioniert. Es kamen immer irgendwelche Fehlermeldungen, egal wieviele Zeilen Code ich eingegeben habe.
http://www.midgard-bcg.de/share/xna/light2d/xna_lighttest.zip
Braucht man den ganzen Code wenn man nur das Licht einer Taschenlampe auf einer 2D Map erzeugen möchte oder geht es auch einfacher?
Könnt ihr mir helfen den Code nach C# zu konvertieren sodass ich das Licht einer Taschenlampe in XNA erzeugen kann(man soll nur das Licht sehen, der Rest des Bildschirms ist schwarz)?
 
Wieso bindest du den Code nicht als Library in deinen vorhandenen Code ein und rufst ihn einfach auf?
Der Code in der Lib kann dann in VB bleiben.
 
Im Prinzip war mein Gedanke die Exe des Projekt als Verweis in ein C# Projekt einzubinden.
Aber du möchtetst den Code ja noch anpassen..
Da bleibt wohl nichts anderes übrig als eigenen Code zu erstellen.
 
@DerZock
Einbinden bringt in dem Fall nicht viel.
Er spart sich dann zwar das Übersetzen von 3 (kleineren) Klassen von VB nach C#, aber der Hauptteil des Codes steht in der Game.vb. Und die kann er nicht einfach so einfach konvertieren, wenn er selbst noch was verändern will.
Außerdem ist es fürs Verständnis sowieso besser, alle Klassen in einer Sprache vorliegen zu haben, die er beherrscht.

@Cartman999
Schau dir mal die Seite an: klick
Dort kannst du den Code konvertieren lassen.
Habs für 2 Klassen probiert und es kam immer was sinnvolles raus.
 
Der Converter funktioniert, jedoch habe ich noch ein paar Probleme mit dem Code. Am Anfang steht im Visual Basic Code:
Public Class Game

Public Sub New()
Wenn ich ein neues Windows Game Projekt öffne steht da:
public class Game1 : Microsoft.Xna.Framework.Game

public Game1()
Der Code aus Public Class Game kommt bei mir ja sicher in public class Game1 : Microsoft.Xna.Framework.Game
Und der Code aus Public Sub New() in public Game1()
Ist das richtig so?
Ich frage mich das nur weil ich bei den folgenden zwei Zeilen immer eine Fehlermeldung bekomme. Wenn ich mich nicht irre schreibt er dass es diese beiden Klassen nicht gibt:
private Camera2D _Camera;
private BackBuffer _BackBuffer;
 
Meinst du nicht, es wäre besser, wenn du erstmal mit den Basics anfängst?
Vlt. solltest du erst einmal C# oder irgend eine andere Sprache lernen, bevor du anfängst ein Spiel zu schreiben.

Code:
private Camera2D _Camera;
private BackBuffer _BackBuffer;

Deine Annahme bzgl. dem Konstruktor bzw. dem Rest der Klasse Game ist korrekt.

Aber:
Wenn dir der Compiler hier sagt, dass es die Klassen Camera2D und BackBuffer nicht gibt, dann kannst du den Code einfügen wo immer du möchtest. Den Fehler beseitigst du damit nicht. Offensichtlich fehlen dir diese beiden Klassen (oder zumindest die Referenzen dazu) in deinem Projekt.
 
namespace WindowsGame4
{
public class BackBuffer
{
private RenderTarget2D _SourcetMap;
private RenderTarget2D _LightMap;

public RenderTarget2D SourceMap {
get { return _SourcetMap; }
set { _SourcetMap = value; }
}
public RenderTarget2D LightMap {
get { return _LightMap; }
set { _LightMap = value; }
}

public BackBuffer(ref GraphicsDevice Device, Size Size)
{
_SourcetMap = new RenderTarget2D(Device, Size.Width, Size.Height, false, Device.DisplayMode.Format, DepthFormat.Depth24);
_LightMap = new RenderTarget2D(Device, Size.Width, Size.Height, false, Device.DisplayMode.Format, DepthFormat.Depth24);
}
}
}
Kann mir jemand verraten was diese Fehlermeldungen bei der BackBuffer-Datei bedeuten und wie ich das Problem lösen kann?
The type or namespace name 'RenderTarget2D' could not be found (are you missing a using directive or an assembly reference?)
The type or namespace name 'GraphicsDevice' could not be found (are you missing a using directive or an assembly reference?)
The type or namespace name Size' could not be found (are you missing a using directive or an assembly reference?)
 
Genau das meinte ich, du hast eigentlich keinen blassen Schimmer von dem, was du da eigentlich machst ;)

Code:
using Microsoft.Xna.Framework.Graphics;

Bzgl. Size kannst du selber googlen. Die Struct ist mehrfach definiert.
 
Zurück
Oben