Aktuelle Zeit: 15.08.2020, 09:55

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 12.08.2008, 10:39 
Offline
Benutzeravatar

Registriert: 28.06.2007, 18:26
Beiträge: 54
Wohnort: München
Hallo @all,

Hier mal eine Code stück das mal mit .Net zu tun hat :)
Un zwar kann man mit meiner Methode einen 3D Grid zeichnen, dies verwende ich auch in
unseren RPG Editor. Das 3D Grid ist schwarz - kann man aber leicht ändern zusätzlich wird ein
Roter und einer Blauer Strich gezogen dies soll helfen um die Achsen X und Z zu unterscheiden.
Wichtig: Ich werde zwei Codestücke mit zwei Möglichkeiten hier
her schreiben also bitte nicht verwechseln
:)
Und noch etwas... hier die definierten variablen.

IDevice = IrrlichtDevice
SManager = SceneManager
VDriver = VideoDriver

und so wird es Später aussehen.
Bild


Möglichkeit 1 (Empfohlen)(Beginner)
Fügt am besten in eurer "While" schleife, zwischen "SManager.DrawAll();" und "VDriver.EndScene();"
folgenden Code stück ein.

Code:
while (IDevice.Run())
{
                VDriver.BeginScene(true, true, new IrrlichtNETCP.Color());
                SManager.DrawAll();

                            int PositionAnfang1 = 0;
            int PositionAnfang2 = 0;
            int PositionAnfang3 = 0;
            int PositionAnfang4 = 0;

            for (int IntAnzahl = 1; IntAnzahl < 30; IntAnzahl++)
            {
                // Linien zeichnen
                VDriver.Draw3DLine(new Line3D(new Vector3D(PositionAnfang1, 0, 0), new Vector3D(PositionAnfang1, 0, 1400)), IrrlichtNETCP.Color.TransparentBlack);
                VDriver.Draw3DLine(new Line3D(new Vector3D(0, 0, PositionAnfang1), new Vector3D(1400, 0, PositionAnfang1)), IrrlichtNETCP.Color.TransparentBlack);
                PositionAnfang1 += 50;

                // Linien zeichnen
                VDriver.Draw3DLine(new Line3D(new Vector3D(PositionAnfang2, 0, 0), new Vector3D(PositionAnfang2, 0, -1400)), IrrlichtNETCP.Color.TransparentBlack);
                VDriver.Draw3DLine(new Line3D(new Vector3D(0, 0, PositionAnfang2), new Vector3D(-1400, 0, PositionAnfang2)), IrrlichtNETCP.Color.TransparentBlack);
                PositionAnfang2 -= 50;

                // Linien zeichnen
                VDriver.Draw3DLine(new Line3D(new Vector3D(PositionAnfang3, 0, 0), new Vector3D(PositionAnfang3, 0, -1400)), IrrlichtNETCP.Color.TransparentBlack);
                VDriver.Draw3DLine(new Line3D(new Vector3D(0, 0, PositionAnfang3), new Vector3D(-1400, 0, PositionAnfang3)), IrrlichtNETCP.Color.TransparentBlack);
                PositionAnfang3 += 50;

                // Linien zeichnen
                VDriver.Draw3DLine(new Line3D(new Vector3D(PositionAnfang4, 0, 0), new Vector3D(PositionAnfang4, 0, 1400)), IrrlichtNETCP.Color.TransparentBlack);
                VDriver.Draw3DLine(new Line3D(new Vector3D(0, 0, PositionAnfang4), new Vector3D(1400, 0, PositionAnfang4)), IrrlichtNETCP.Color.TransparentBlack);
                PositionAnfang4 -= 50;
            }

            VDriver.Draw3DLine(new Line3D(new Vector3D(0, 0, 0), new Vector3D(0, 0, 1400)), IrrlichtNETCP.Color.Blue);
            VDriver.Draw3DLine(new Line3D(new Vector3D(0, 0, 0), new Vector3D(0, 0, -1400)), IrrlichtNETCP.Color.Blue);

            VDriver.Draw3DLine(new Line3D(new Vector3D(0, 0, 0), new Vector3D(1400, 0, 0)), IrrlichtNETCP.Color.TransparentRed);
            VDriver.Draw3DLine(new Line3D(new Vector3D(0, 0, 0), new Vector3D(-1400, 0, 0)), IrrlichtNETCP.Color.TransparentRed);

                VDriver.EndScene();
}


Möglichkeit 2 (Für erfahrene Programmierer)
Dieser abschnitt ist für erfahrene Programmierer, weil: Die Programmierer die Methode für
sich aufbauen können, bzw. auch mit weiteren variablen zu bestücken. Der folgende Code abschnitt
wird als Methode verwendet.

Code:
#region Create3DGrid

/// <summary>
/// Erstellt einen 3D Grid
/// </summary>
public void Create3DGrid()
{
            int PositionAnfang1 = 0;
            int PositionAnfang2 = 0;
            int PositionAnfang3 = 0;
            int PositionAnfang4 = 0;

            for (int IntAnzahl = 1; IntAnzahl < 30; IntAnzahl++)
            {
                // Linien zeichnen
                VDriver.Draw3DLine(new Line3D(new Vector3D(PositionAnfang1, 0, 0), new Vector3D(PositionAnfang1, 0, 1400)), IrrlichtNETCP.Color.TransparentBlack);
                VDriver.Draw3DLine(new Line3D(new Vector3D(0, 0, PositionAnfang1), new Vector3D(1400, 0, PositionAnfang1)), IrrlichtNETCP.Color.TransparentBlack);
                PositionAnfang1 += 50;

                // Linien zeichnen
                VDriver.Draw3DLine(new Line3D(new Vector3D(PositionAnfang2, 0, 0), new Vector3D(PositionAnfang2, 0, -1400)), IrrlichtNETCP.Color.TransparentBlack);
                VDriver.Draw3DLine(new Line3D(new Vector3D(0, 0, PositionAnfang2), new Vector3D(-1400, 0, PositionAnfang2)), IrrlichtNETCP.Color.TransparentBlack);
                PositionAnfang2 -= 50;

                // Linien zeichnen
                VDriver.Draw3DLine(new Line3D(new Vector3D(PositionAnfang3, 0, 0), new Vector3D(PositionAnfang3, 0, -1400)), IrrlichtNETCP.Color.TransparentBlack);
                VDriver.Draw3DLine(new Line3D(new Vector3D(0, 0, PositionAnfang3), new Vector3D(-1400, 0, PositionAnfang3)), IrrlichtNETCP.Color.TransparentBlack);
                PositionAnfang3 += 50;

                // Linien zeichnen
                VDriver.Draw3DLine(new Line3D(new Vector3D(PositionAnfang4, 0, 0), new Vector3D(PositionAnfang4, 0, 1400)), IrrlichtNETCP.Color.TransparentBlack);
                VDriver.Draw3DLine(new Line3D(new Vector3D(0, 0, PositionAnfang4), new Vector3D(1400, 0, PositionAnfang4)), IrrlichtNETCP.Color.TransparentBlack);
                PositionAnfang4 -= 50;
            }

            VDriver.Draw3DLine(new Line3D(new Vector3D(0, 0, 0), new Vector3D(0, 0, 1400)), IrrlichtNETCP.Color.Blue);
            VDriver.Draw3DLine(new Line3D(new Vector3D(0, 0, 0), new Vector3D(0, 0, -1400)), IrrlichtNETCP.Color.Blue);

            VDriver.Draw3DLine(new Line3D(new Vector3D(0, 0, 0), new Vector3D(1400, 0, 0)), IrrlichtNETCP.Color.TransparentRed);
            VDriver.Draw3DLine(new Line3D(new Vector3D(0, 0, 0), new Vector3D(-1400, 0, 0)), IrrlichtNETCP.Color.TransparentRed);
}
#endregion Create3DGrid


Hoffe ihr könnt den Code irgendwie gebrauchen :)

Mit freundlichen grüßen Azim

_________________
XtremBit.kilu.de
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 15.08.2008, 11:14 
Offline
Benutzeravatar

Registriert: 07.08.2008, 11:31
Beiträge: 104
Damit könnte man vielleicht ein Grundstück oder eine "Baufläche" wie bei SIMS erstellen. :)


Nach oben
 Profil  
 
BeitragVerfasst: 24.08.2008, 18:07 
Offline

Registriert: 24.05.2008, 13:41
Beiträge: 151
Wohnort: Marienhafe
Ah sehr schön hab gerade nach einer möglichkeit gesucht, wie ich linien dort rein bringe^^ Und da dachte ich bau ich auch gleich mal das Grid ein.
Was ich nun gern wissen würde ist, warum diese nicht angezeigt wird, wenn nur die skybox drin ist?


Nach oben
 Profil  
 
BeitragVerfasst: 11.01.2009, 19:41 
Offline
Benutzeravatar

Registriert: 11.01.2009, 19:31
Beiträge: 18
Wohnort: ffm
was du dort machst ist ne extrem langsame lösung, die speziell bei software treibern und alten rechnern performance kostet.
nicht einfach, aber schneller ist es, das ganze über primitives zu lösen, das geht flotter ;)
ausserdem gibts hier eine GridSceneNode, die schon optimal gemacht ist:
http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=24938&highlight=grid+node


Nach oben
 Profil  
 
BeitragVerfasst: 11.05.2013, 12:15 
Offline

Registriert: 11.05.2013, 11:58
Beiträge: 3
Damit könnte man vielleicht ein Grundstück oder eine "Baufläche" wie bei SIMS erstellen. :)


Zuletzt geändert von konglong am 12.02.2015, 10:54, insgesamt 1-mal geändert.

Nach oben
 Profil  
 
BeitragVerfasst: 01.07.2013, 04:21 
Offline

Registriert: 01.07.2013, 03:01
Beiträge: 67
die speziell bei software treibern und alten rechnern performance kostet.





__________________________________
wow gold kaufen and wow gold is very essential in the World of Warcraft Gold.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de