Flutch - Erobert die Welt

  • Hab mal zum Verständnis ein einfaches Irrlicht-Beispiel gemacht...
    Hab es kommentiert... wenns Fragen oder Beschwerden gibt einfach schreiben ^^


    [autoit]

    #Region ;**** Richtlinien durch AutoIt3Wrapper_GUI erstellt ****
    #AutoIt3Wrapper_UseX64=n
    #EndRegion ;**** Richtlinien durch AutoIt3Wrapper_GUI erstellt ****
    ; ----------------------------------------------------------------------------
    ; Irrlicht Wrapper für imperative Sprachen - FreeBASIC Beispiele
    ; Frank Dodd (2006)
    ; Convertiert / geändert für die au3Irr2 Projekt von linus
    ; ----------------------------------------------------------------------------
    ; Beispiel 01: Fenster mit Label
    ; Dieses einfache Beispiel öffnet ein Irrlicht Fenster und zeigt den Text
    ; "Hello World" auf dem Bildschirm und wartet auf den Benutzer die Anwendung zu schließen
    ; ----------------------------------------------------------------------------

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ; ////////////////////////////////////////////////////////////////////////////
    ; Includiert die Irrlicht engine
    #include "../au3Irrlicht2.au3"

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    opt("MustDeclareVars", True)
    HotKeySet("{ESC}", "_exit")

    [/autoit][autoit][/autoit][autoit]

    Func _exit()
    _IrrStop()
    Exit
    EndFunc ; _exit

    [/autoit][autoit][/autoit][autoit]

    ; ////////////////////////////////////////////////////////////////////////////
    ; globale Variablen

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ; ////////////////////////////////////////////////////////////////////////////

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ; -----------------------------------------------------------------------------
    ; Startet die Irrlicht interface. Die Szene wird mit Irrlicht gerendert,
    ; Software-Renderer, erscheint ein Fenster mit 400 x 200 Pixel,kein
    ; Schatten wird angezeigt, und es werden die Tastatur und Mausereignisse ignoriert,
    ; und schließlich wird die vertikale Synchronisation eingeschaltet, um die Anzeige
    ; zu glätten, standardmäßig ist sie ausgeschaltet
    _IrrStart( $IRR_EDT_OPENGL, 400, 200, $IRR_BITS_PER_PIXEL_32, _
    $IRR_WINDOWED, $IRR_NO_SHADOWS, $IRR_IGNORE_EVENTS, _
    $IRR_VERTICAL_SYNC_ON )

    [/autoit][autoit][/autoit][autoit]

    ; Bestimmt den Titel vom Fenster
    _IrrSetWindowCaption( "Example 01: Hello World" )

    [/autoit][autoit][/autoit][autoit]

    ; Fügt ein statisches Text-Objekt der grafischen Benutzeroberfläche hinzu. Der Text wird
    ; innerhalb des definierten Rechtecks gezeichnet, wird das Feld wird keien Grenze haben
    ; und der Text wird nicht gewickelt werden, zum Schluss
    _IrrAddStaticText( "Hello World!", 20, 20, 200, 100, $IRR_GUI_NO_BORDER, $IRR_GUI_NO_WRAP)

    [/autoit][autoit][/autoit][autoit]

    ; solange die Scene läuft
    WHILE _IrrRunning()
    ; startet die Scene, Löschen der Leinwand (weiß) vor dem Rendern
    _IrrBeginScene( 255,255,255 )

    [/autoit][autoit][/autoit][autoit]

    ; zeichnet die GUI (Graphical User Interface)
    _IrrDrawGUI()

    [/autoit][autoit][/autoit][autoit]

    ; beendet das zeichnen der Scene und rendert sie
    _IrrEndScene()
    WEND

    [/autoit][autoit][/autoit][autoit]

    ; -----------------------------------------------------------------------------
    ; stoppt die Irrlicht engine uns setzt die Ressuorcen frei
    _IrrStop()

    [/autoit]
  • Hier ein weiters Beispiel...
    An alle die Irrlicht können: Hab ich das so richtig verstanden??
    Wie kann ich mich (teilweise) besser ausdrücken:


    [autoit]

    #Region ;**** Richtlinien durch AutoIt3Wrapper_GUI erstellt ****
    #AutoIt3Wrapper_UseX64=n
    #EndRegion ;**** Richtlinien durch AutoIt3Wrapper_GUI erstellt ****
    ; ----------------------------------------------------------------------------
    ; Irrlicht Wrapper für imperative Sprachen - FreeBASIC Beispiele
    ; Frank Dodd (2006)
    ; Convertiert / geändert für die au3Irr2 Projekt von linus
    ; ----------------------------------------------------------------------------
    ; Beispiel 02: Fenster mit Bilder
    ; Diese Beispiel verwendet eine Reihe von Bild-Zeichenoperationen,
    ; um Grafiken auf dem Display zu zeichnen
    ; ----------------------------------------------------------------------------

    [/autoit][autoit][/autoit][autoit]

    ; ////////////////////////////////////////////////////////////////////////////
    ; Includiert die Irrlicht- Bibliothek
    #include "..\au3Irrlicht2.au3"
    opt("MustDeclareVars", True)
    HotKeySet("{ESC}", "_exit")

    [/autoit][autoit][/autoit][autoit]

    Func _exit()
    _IrrStop()
    Exit
    EndFunc ; _exit

    [/autoit][autoit][/autoit][autoit]

    ; ////////////////////////////////////////////////////////////////////////////
    ; globale Variablen
    ; Dieser Wrapper verwendet eine Reihe von Arten, um Eingabefehler aufmerksam
    ; zu machen, beo der Übergabe von Variablen in den Wrapper
    DIM $IrrlichtLogo ; Bild
    DIM $FreeBasicLogo ; Bild
    DIM $FBIDELogo ; Bild
    DIM $CodeBlocksLogo ; Bild
    DIM $WrapperLogo ; Bild
    DIM $screen_width ; ganzzahliger Wert
    DIM $screen_height ; ganzzahliger Wert

    [/autoit][autoit][/autoit][autoit]

    ; ////////////////////////////////////////////////////////////////////////////

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ; -----------------------------------------------------------------------------
    ; Startet die Irrlicht interface. Die Szene wird mit Irrlicht gerendert,
    ; Software-Renderer, erscheint ein Fenster mit 400 x 200 Pixel,kein
    ; Schatten wird angezeigt, und es werden die Tastatur und Mausereignisse ignoriert,
    ; und schließlich wird die vertikale Synchronisation eingeschaltet, um die Anzeige
    ; zu glätten
    $screen_width = 400
    $screen_height = 200
    _IrrStart( $IRR_EDT_OPENGL, $screen_width, $screen_height, $IRR_BITS_PER_PIXEL_32, _
    $IRR_WINDOWED, $IRR_NO_SHADOWS, $IRR_IGNORE_EVENTS, $IRR_VERTICAL_SYNC_ON )

    [/autoit][autoit][/autoit][autoit]

    ; Bestimmt den Titel vom Fenster
    _IrrSetWindowCaption( "Example 02: 2D Images" )

    [/autoit][autoit][/autoit][autoit]

    ; lädt Bitmap-Bilder von wichtigen Open Source-Tools und speichert
    ; sie in irrlicht Texturobjekte
    $IrrlichtLogo = _IrrGetTexture( "../media/IrrlichtLogo.bmp" )
    $FreeBasicLogo = _IrrGetTexture( "../media/FreeBasicLogo.bmp" )
    $FBIDELogo = _IrrGetTexture( "../media/FBIDELogo.bmp" )
    $CodeBlocksLogo = _IrrGetTexture( "../media/CodeBlocksLogo.bmp" )
    $WrapperLogo = _IrrGetTexture( "../media/wrapperby.tga" )

    [/autoit][autoit][/autoit][autoit]

    ; Erstellt eine Maske für die FreeBasic logos, dass die
    ; weißen Bereiche des Logos transparent macht
    _IrrColorKeyTexture( $FreeBasicLogo, 255, 255, 255 )

    [/autoit][autoit][/autoit][autoit]

    ; solange die Scene läuft
    WHILE _IrrRunning()
    ; startet die Scene, Löschen der Leinwand (weiß) vor dem Rendern
    _IrrBeginScene( 255,255,0 )

    [/autoit][autoit][/autoit][autoit]

    ; der grundlegende 2D-Zeichnungs-Operator kopiert die gesamte Textur
    ; auf dem Bildschirm an den angegebenen Koordinaten
    _IrrDraw2DImage( $IrrlichtLogo, 4, 4 )

    [/autoit][autoit][/autoit][autoit]

    ; eine flexiblere Methode für das Zeichnen auf dem Bildschirm: diese Kopieren
    ; eine rechteckige Fläche der Textur auf dem Bildschirm, dabei kann eine Farbe
    ; einer eingegeben Maske oder einen Alpha-Kanal in das Bild verwendet werden,
    ; um Teile des Bildes transparent darzustellen. ersten Lieferung der Textur,
    ; dann die Ziel-Koordinaten, dann die Koordinaten des rechteckigen Bereich und
    ; schließlich ein Flag, um festzulegen, ob der Alphakanal für Transparenz
    ; verwendet werden soll.
    _IrrDraw2DImageElement( $FreeBasicLogo, _
    $screen_width - 60 - 4, 4, _
    0,0,60,31, $IRR_USE_ALPHA )
    _IrrDraw2DImageElement( $FBIDELogo, _
    4, $screen_height - 32 - 4, _
    0,0,128,32, $IRR_IGNORE_ALPHA )
    _IrrDraw2DImageElement( $WrapperLogo, _
    ( $screen_width - 110 ) / 2, $screen_height - 32 - 4, _
    0,0,100,32, $IRR_USE_ALPHA )
    _IrrDraw2DImageElement( $CodeBlocksLogo, _
    $screen_width - 110 - 4, $screen_height - 32 - 4, _
    0,0,110,32, $IRR_IGNORE_ALPHA )

    [/autoit][autoit][/autoit][autoit]

    ; beendet das zeichnen der Scene und rendert sie
    _IrrEndScene()
    WEND

    [/autoit][autoit][/autoit][autoit]

    ; -----------------------------------------------------------------------------
    ; stoppt die Irrlicht engine uns setzt die Ressuorcen frei
    _IrrStop()

    [/autoit]
  • ich habs ja nur ins deutsche Übersetzt... theoretisch is es ja sein Beispiel..

    Und was soll das denn dann? Wenns doch nur kopiert ist :D:D


    An alle die Irrlicht können: Hab ich das so richtig verstanden??
    Wie kann ich mich (teilweise) besser ausdrücken:

    Ich denk mal, wenns ein Beispiel ist, wirds wohl so ganz gut sein...

  • @2$billie und RapIT

    mit welchem Programm macht ihr md2 dateien...??
    sowie die dazugehörigen texturen??

  • Such mal...Ich hab das schon mal irgendwo gepostet. Mit Blender gehts im Moment auf jedefall glaub ich nicht. Die Seite für das Python Plugin ist down. Es gibt aber noch son anderes Tool. Du musst aber auch nicht unbedingt .md2 verwenden. Textures kannst du auch mit Paint machen, wenn sie einfach sein sollen... Hier ist ein Post dazu: [ gelöst ] [Irrlicht] Eigenes Model -> Textur ?

  • danke für deine Antwort...
    doch leider sind in diesem Thread wenig Antworten.. dir und die anderen natürlich ausgeschlossen..
    das liegt wahrscheinlich daran das keiner oder wenig irrlicht können..
    deswegen will ich paralell dazu ein Tutorial machen..^^

  • bis jetzt is alles herinnen was ich bereits gemacht habe ^^
    keinen angst es kommt bald mehr!

  • Kann mir jemand sagen was die Funktion _IrrGetCollisionResultPosition()
    --> macht
    -->welche Parameter sie hat
    --> und anderes was man wissen muss

    in der Hilfe steht nichts und mit Google hab ich auch nichts gefunden!

  • Ich frag mich, wonach du googlest... Bei mir steht gleich beim ersten Ergebnis:
    "Collides a moving ellipsoid with a 3d world with gravity and returns the resulting new position of the ellipsoid." --> Wenn ich es richtig verstanden hab, berechnet die Funktion die Flugbahn eines Ellipsoid in einer 3D Welt und gibt die neuen Koordinaten zurück.
    Parameter:
    $h_Selector -> keine Ahnung was das ist, hab mich noch nie mit Irrlicht beschäftigt
    ByRef $a_EllipsoidPosition -> Array mit den momentanen Koordinaten des Ellipsoid
    ByRef $a_EllipsoidRadius -> Array mit den 3 Radien des Ellipsoid
    ByRef $a_Velocity -> Eigentlich würde ich sagen, die Geschwindigkeit, aber es ist ein Array mit 3 Elementen :huh:
    ByRef $a_Gravity -> Das gleiche wie beim vorhergehenden, eigentlich würde ich sagen Gravitationskraft, aber es ist wieder ein Array...
    ByRef $f_SlidingSpeed -> Gleitgeschwindigkeit
    ByRef $a_OutPosition -> Ein Array mit der neuen Position des Ellipsoid
    ByRef $a_OutHitPosition -> Ein Array mit der neuen irgendwas
    ByRef $i_OutFalling -> Die neue (Fallgeschwindigkeit?)

  • Danke.. das hilft mir weiter...
    Ich kann nicht googeln.. frag bitte nicht darum.. aber bei mir funkts irgendwie nicht ^^

  • Ich kann auch nicht Bing ^^

    naja.. ich weiß zwar jetzt was die machen... wobei ich glaube dass velocity der richtungsvektor ist
    ich versteh aber nicht ganz... ich hab es geschafft das mein charakter nach vorne geht,
    aber ich weiß nicht welchen vert der vektor annehmen muss wenn er nach hinten gehen soll

  • Hab jetzt mit einem Tutorial über irrlicht begonnen...
    Wens interresiert kann es sich mal durchlesen und bitte kommentieren..

  • Da ich auch nicht genau weiß wie man mit Irrlich arbeitet,wüsste ich ev wie du das problem mit dem rückwarts gehen gelöst bekommst.Wenn er vorwärts geht,wird ja der wert(schätz ich mal) + gerechnet.Wenn er rückwarts gehen soll,müsstest du es ev mit - versuchen?.Wie gesagt.Es ist nur ein Vorschlag.Ich weiß nicht wie man mit Irrlich arbeitet :whistling: