Irrlicht.au3 fehler?

  • HI

    Ich arbeite seit neustem mit der Irrlicht.au3 .
    also jetzt möchte ich ein kleines spiel damit machen, sodass sich ne Shutgun(?) sich mit der Camera dreht. Also muss ich $X,$Y,$Z verändern und dann "SetPosition($Node,$X,$Y,$Z)" oder?
    aber die Shutgun(?) bleibt an der stelle! (nur beim ersten aufruf geht es glaube ich mit SetPosition!) Die macht auch so ein paar "kunststücke" ^^

    aber irgendwie will ich das anders haben X(

    Source
    [autoit]

    $Title = "Irrlicht"
    $fps = 0
    #include "IrrlichtPluginUtils.au3"
    #include <Misc.au3>
    AutoItSetOption("TrayIconHide", 1)
    Opt("WinTitleMatchMode", 3)
    ;~ CreateDevice($EDT_DIRECT3D9, 640, 480, 16, 0, 0, 0)
    CreateDevice($EDT_DIRECT3D9, @DesktopWidth - 200, @DesktopHeight - 200, 16, 0, 0, 0)
    SetWindowCaption($Title)
    $Light = AddLightSceneNode(0, 2000, 2000, 0, 1, 1, 1, 10000)

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

    $Camera = AddCameraSceneNodeFPS(0, 100, 200, 1, 0.8)
    SetPosition($Camera, 50, 25, 50)
    SetTarget($Camera, 0, 25, 0)
    $X = 50
    $Y = 25
    $Z = 50
    $ModelsDir = @ScriptDir & "\data\"
    GUISetCursor(16,1, WinGetHandle($Title, ""))

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

    AddZipFileArchive($ModelsDir & "map-20kdm2.pk3")
    $MapMesh = GetMesh("20kdm2.bsp")
    $MapNode = AddOctTreeSceneNode($MapMesh)
    SetPosition($MapNode, -1300, -144, -1249)
    ;###################################################################################################
    $ModelsDir = @ScriptDir & "\"
    ;Getting meshs
    $CharMesh = GetMesh($ModelsDir & "spos_weapon.md2")

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

    ;Creating scene nodes
    $Node = AddAnimatedMeshSceneNode($CharMesh)

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

    SetMaterialTexture($Node, 0, GetTexture($ModelsDir & "spos_weapon.png"))
    ;~ SetMD2Animation( $Node, $EMAT_Stand )
    AddChild( $Camera, $Node )
    SetLoopMode($Node, 1)
    SetPosition($Node, 50,25,50)
    SetTarget($Node, 0, 25, 0)
    ;###################################################################################################

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

    ;Add Sky
    AddSkyBoxSceneNode( GetTexture("data\skybox\irrlicht2_up.jpg"), GetTexture("data\skybox\irrlicht2_dn.jpg"), GetTexture("data\skybox\irrlicht2_lf.jpg"), GetTexture("data\skybox\irrlicht2_rt.jpg"), GetTexture("data\skybox\irrlicht2_ft.jpg"), GetTexture("data\skybox\irrlicht2_bk.jpg"))

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

    $MapSelector = CreateOctTreeTriangleSelector($MapMesh, $MapNode)
    SetTriangleSelector($MapNode, $MapSelector)

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

    $MapCameraAnimator = CreateCollisionResponseAnimator($MapSelector, $Camera, 25, 50, 25, 0, -1, 0, 0, 0, 0)
    AddAnimator($Camera, $MapCameraAnimator)
    DropAnimator($MapCameraAnimator)

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

    AdlibRegister(_SettingCameraA(1), 50)
    AdlibRegister("_FPS", 1000)
    While IrrRun()
    $fps += 1
    BeginScene(True, True, 255, 100, 100, 100)

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

    SceneDraw()
    GuiDraw()

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

    EndScene()
    Sleep(20)
    If _IsPressed("1B") Then Exit
    $fps += 1
    WEnd

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

    Func _SettingCameraA($doll)
    If _IsPressed(25) Then
    $Z -= $doll
    $Y -= $doll * 2
    SetPosition($Node, $X, $Y, $Z)
    SetPosition($Camera, $X, $Y - 100, $Z)
    EndIf
    If _IsPressed(26) Then
    $X -= $doll
    $Y -= $doll * 2
    SetPosition($Node, $X, $Y, $Z)
    SetPosition($Camera, $X, $Y, $Z)
    EndIf
    If _IsPressed(27) Then
    $Z += $doll
    $Y -= $doll * 2
    SetPosition($Node, $X, $Y, $Z)
    SetPosition($Camera, $X, $Y, $Z)
    EndIf
    If _IsPressed(28) Then
    $X += $doll
    $Y -= $doll * 2
    SetPosition($Node, $X, $Y, $Z)
    SetPosition($Camera, $X, $Y, $Z)
    EndIf
    EndFunc ;==>_SettingCameraA

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

    Func _FPS()
    ToolTip("FPS: " & $fps, 0, 0)
    $fps = 0
    EndFunc ;==>_FPS

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

    ;ich weiß es ist noch opimierbar!

    [/autoit]


    Hier zum Download

    Einmal editiert, zuletzt von Alizame (3. Juli 2010 um 12:00)

  • Marthog child gibts, geht aber nicht X( (dann ist die flinte komplett weg!)

    Edit\\ bin mal auf die idee gekommen die kamera als child vond er flinte zu machen, die flinte bleibt an irhem platz, während sie bewegt wird, die kamera(child) bewegt sich aber xD
    ich glaube das liegt an dem modell der flinte X(

    Einmal editiert, zuletzt von Alizame (2. Juli 2010 um 11:30)