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 ![]()
Source
$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)
$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, ""))
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")
;Creating scene nodes
$Node = AddAnimatedMeshSceneNode($CharMesh)
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)
;###################################################################################################
;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"))
$MapSelector = CreateOctTreeTriangleSelector($MapMesh, $MapNode)
SetTriangleSelector($MapNode, $MapSelector)
$MapCameraAnimator = CreateCollisionResponseAnimator($MapSelector, $Camera, 25, 50, 25, 0, -1, 0, 0, 0, 0)
AddAnimator($Camera, $MapCameraAnimator)
DropAnimator($MapCameraAnimator)
AdlibRegister(_SettingCameraA(1), 50)
AdlibRegister("_FPS", 1000)
While IrrRun()
$fps += 1
BeginScene(True, True, 255, 100, 100, 100)
SceneDraw()
GuiDraw()
EndScene()
Sleep(20)
If _IsPressed("1B") Then Exit
$fps += 1
WEnd
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
Func _FPS()
ToolTip("FPS: " & $fps, 0, 0)
$fps = 0
EndFunc ;==>_FPS
;ich weiß es ist noch opimierbar!
[/autoit]
Hier zum Download