referenz
-
ne
-
Vielleicht werkelt auf deinem System noch der alte Code des Managed DirectX-Frameworks ...
Installier' die aktuelle Version des Microsoft-DirectX-SDKs.
-
hab eh schon alle möglichen updates von DX downgeloaded
hab erstmal das volle DX update paket downgeloaded(100mb)
dann die DX-SDK(500mb) und jez grad lad ich die Windows-SDK runter
hab leider keinen plan was ich genau machen muss...
-
Hast du die benötigten Assemblies unter Projekt -> Verweise hinzugefügt?
-
klar
-
Was funktioniert denn nicht? Gibt es Fehlermeldungen und - wenn ja - welche?
-
ne er kennt einfach die klasse TextureLoader net aus direct3d und Sprites kennt er auch net
-
Zeig' doch mal deinen Code.
-
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
using System.Windows;
using System.Threading;using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;
using DirectSound = Microsoft.DirectX.DirectSound;
using DirectInput = Microsoft.DirectX.DirectInput;Die alle hab ich eingebunden(mit Verweisen usw.)
-
Das sind nur die using-Direktiven, von deinem Code weit und breit keine Spur.
Nur am Rande: Wo hast du denn das her:
using DirectSound = Microsoft.DirectX.DirectSound; using DirectInput = Microsoft.DirectX.DirectInput;
?
Das Warten auf die Weihnachtsgans hat begonnen ... :xmas1:
-
den ganzen?
weiß aber net wo die code tags sind
-
aus nem c# buch...
das hab ich einfach abgeschrieben da hab ich mir nicht wirklich gedanken über die beiden zeilen gemacht
-
using System; using System.Collections; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; using System.IO; using System.Windows; using System.Threading; using Microsoft.DirectX; using Microsoft.DirectX.Direct3D; public class MainClass : Form { Device device = null; Texture texture = null; static bool paused = false; static bool graphicslost = false; static bool windowed = false; static int ScreenWidth = 1280; static int ScreenHeight = 1024; public MainClass() { this.ClientSize = (new Size(1280, 1024)); this.Text = "Direct3D Project"; } public void InitializeGraphics() { PresentParameters p = new PresentParameters(); p.SwapEffect = SwapEffect.Discard; if (windowed == true) { p.Windowed = true; device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, p); } else { Format current = Manager.Adapters[0].CurrentDisplayMode.Format; p.Windowed = false; p.BackBufferCount = 1; p.BackBufferFormat = current; p.BackBufferWidth = ScreenWidth; p.BackBufferHeight = ScreenHeight; device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, p); device.DeviceLost += new EventHandler(this.InvalidateDeviceObjects); device.DeviceReset += new EventHandler(this.RestoreDeviceObjects); device.Disposing += new EventHandler(this.DeleteDeviceObjects); device.DeviceResizing += new CancelEventHandler(this.EnvironmentResizing); } } protected virtual void FrameMove() { if (!paused) { // do processing here } else Thread.Sleep(1); } protected virtual void Render() { if (device != null) { if (graphicslost) { try { device.TestCooperativeLevel(); } catch (DeviceLostException) { // device cannot be reacquired yet, just return return; } catch (DeviceNotResetException) { // device has not been reset, but it can be reacquired now device.Reset(device.PresentationParameters); } graphicslost = false; } try { CustomVertex.TransformedColored[] vertexes = new CustomVertex.TransformedColored[3]; // top vertex vertexes[0].X = ScreenWidth / 1.0f; // halfway across the screen vertexes[0].Y = ScreenHeight / 3.0f; // 1/3 down screen vertexes[0].Z = 0.0f; vertexes[0].Color = Color.White.ToArgb(); vertexes[1].X = (ScreenWidth / 3.0f) * 2.0f; // 2/3 across the screen vertexes[1].Y = (ScreenHeight / 3.0f) * 2.0f; // 2/3 down screen vertexes[1].Z = 0.0f; vertexes[1].Color = Color.White.ToArgb(); // left vertex: vertexes[2].X = ScreenWidth / 3.0f; // 1/3 across the screen vertexes[2].Y = (ScreenHeight / 3.0f) * 2.0f; // 2/3 down screen vertexes[2].Z = 0.0f; vertexes[2].Color = Color.White.ToArgb(); device.RenderState.CullMode = Cull.None; device.Clear(ClearFlags.Target, Color.Black, 1.0f, 0); device.BeginScene(); device.VertexFormat = CustomVertex.TransformedColored.Format; device.DrawUserPrimitives(PrimitiveType.TriangleList, 1, vertexes); // TODO : Scene rendering device.EndScene(); device.Present(); } catch (DeviceLostException) { graphicslost = true; } } } public void Run() { while (Created) { FrameMove(); Render(); Application.DoEvents(); } } protected override void OnPaint(PaintEventArgs e) { this.Render(); } protected override void OnKeyPress(KeyPressEventArgs e) { switch ((int)e.KeyChar) { case (int)Keys.Escape: this.Close(); break; case (int)Keys.P: if (paused == false) { paused = true; } else { paused = false; } break; } } protected virtual void InvalidateDeviceObjects(object sender, EventArgs e) { // da steht hoffentlich irgendwann mal n code } protected virtual void RestoreDeviceObjects(object sender, EventArgs e) { // da steht hoffentlich irgendwann mal n code } protected virtual void DeleteDeviceObjects(object sender, EventArgs e) { // da steht hoffentlich irgendwann mal n code } protected virtual void EnvironmentResizing(object sender, CancelEventArgs e) { e.Cancel = true; } public static void Main() { try { MainClass mainClass = new MainClass(); mainClass.InitializeGraphics(); mainClass.Show(); mainClass.Run(); } catch (Exception e) { MessageBox.Show("Error: " + e.Message); } } }
-
noplan schrieb:
ne er kennt einfach die klasse TextureLoader net aus direct3d und Sprites kennt er auch net
Microsoft.DirectX.Direct3D ist auf mehrere Assemblys aufgeteilt.
Weniger wichtiges Zeugs wie TextureLoader und Sprite gelten als "Extensions" und sind in einer anderen Assembly.Die Standard-Assembly ist "microsoft.directx.direct3d.dll"
Zeugs wie TextureLoader ist in "microsoft.directx.direct3dx.dll"
Du solltest beide(!) nacheinander als Referenz dem Projekt hinzufügen...
-
tatsächlich ^^
vielen dank