Jump to content

Au3Irrlicht 2.0


JRowe
 Share

Recommended Posts

Comes there another Au3Irrlicht 2.0 Engine update, or it´s death??

With visible usage of it in mind I would say: yes, it's dead. Don't think an update would change anything about this: already 2.04 has a quiete complete feature list, lots of example code and some basic documentation.

But feel free to bring it back to life with a cool small project, it may be the missing motivation for new dev activity around this UDF :)

OK, to be serious: I wish I would have some time again to to some 3D programming for fun. If this will happen, it will be also a reason to polish the UDF. In the meantime: why not use what is already there?

Link to comment
Share on other sites

i need someone else to try to replicate my problem (i dono if problem is only on my comp)

So heare is small script that can replicate problem

(don`t pay attention to unneeded lines or declarations and some leftovers of original example that i edited)

#Include <Misc.au3>
#include "../au3Irrlicht2.au3"
HotKeySet("{ESC}", "_exit")
Func _exit()
$POS = _IrrGetNodeAbsolutePosition( $FrontNode )
IniWrite("data.ini", "section2", "X", $POS[0])
IniWrite("data.ini", "section2", "Y", $POS[0])
IniWrite("data.ini", "section2", "Z", $POS[0])
    _IrrStop()
    Exit
EndFunc
$returntime = DllStructCreate ( "uint64" )
DllCall ( "user32.dll" , "hwnd" , "SetWindowsHookEx" , "int" , 14 , "ptr" , DllCallbackGetPtr ( DllCallbackRegister ( "_wheel" , "int" , "int;ptr;ptr" )  )  , "hwnd" , 0x00400000 , "dword" , 0 )
DIM $MouseUPDWN
Dim $state_1 = 9,$state_2
Global Const $IRR_INVISIBLE = 0
Global Const $IRR_VISIBLE = 1
Global $hBillboardGroup
Global $hBillboardTexture
Global $hSun
Global $hCamera
Global $hSkybox
Global $hMoon
Global $fFactor, $fX, $fY, $fZ, $iSmall, $iBig
Global $currentTime
_IrrStart($IRR_EDT_OPENGL, 800, 600, $IRR_BITS_PER_PIXEL_32, $IRR_WINDOWED, $IRR_SHADOWS, $IRR_CAPTURE_EVENTS, $IRR_VERTICAL_SYNC_ON )
$hSkybox = _IrrAddSkyBoxToScene( _
        _IrrGetTexture("../media/starbox1.jpg"), _
        _IrrGetTexture("../media/starbox1.jpg"), _
        _IrrGetTexture("../media/starbox1.jpg"), _
        _IrrGetTexture("../media/starbox1.jpg"), _
        _IrrGetTexture("../media/starbox1.jpg"), _
        _IrrGetTexture("../media/starbox1.jpg"))
$direction1 = _IrrGetMesh( "earth.3ds" )
$skynode1 = _IrrAddMeshToScene( $direction1 )
_IrrSetNodeMaterialTexture( $skynode1, _IrrGetTexture( "EarthMap_2500x1250.jpg" ), 0 )
_IrrSetNodeMaterialFlag( $skynode1, $IRR_EMF_LIGHTING, $IRR_OFF )
_IrrSetNodePosition($skynode1, 0, 0, 0 )
$direction2 = _IrrGetMesh( "earth cover.3ds" )
$skynode2 = _IrrAddMeshToScene( $direction1 )
_IrrSetNodeMaterialTexture( $skynode2, _IrrGetTexture( "1.jpg" ), 0 )
_IrrSetNodeMaterialFlag( $skynode2, $IRR_EMF_LIGHTING, $IRR_OFF )
_IrrSetNodeMaterialType( $skynode2, $IRR_EMT_TRANSPARENT_ADD_COLOR)
_IrrSetNodePosition($skynode2, 0, 0, 0 )
_IrrSetNodeScale($skynode2, 137.13, 137.13, 137.13)
$hBillboardTexture = _IrrGetTexture("../media/cloudtest.bmp")
$hBillboardGroup = _IrrAddBillBoardGroupToScene()
_IrrHideMouse()
_IrrSetNodeScale($skynode1, 12713, 12713, 12713)
$ship1_1 = _IrrGetMesh( "ship1/ship_01.3DS" )
$ship1_2 = _IrrAddMeshToScene( $ship1_1 )
$ship1_X = IniRead("data.ini", "section2", "X", "NotFound")
$ship1_Y = IniRead("data.ini", "section2", "Y", "NotFound")
$ship1_Z = IniRead("data.ini", "section2", "Z", "NotFound")
_IrrSetNodePosition($ship1_2,$ship1_X,$ship1_Y,$ship1_Z)
_IrrSetNodeMaterialFlag( $ship1_2, $IRR_EMF_LIGHTING, $IRR_OFF )
_IrrSetNodeScale( $ship1_2, 0.01, 0.01, 0.01)
$cam1 = _IrrAddCamera(0,50,250, $ship1_X,$ship1_Y,$ship1_Z)
_IrrAddChildToParent($cam1,$ship1_2)
_IrrSetCameraClipDistance($cam1, 1280000)
$speed = 100
$direction = _IrrGetMesh( "../media/front-back(NODE).3ds" )
$FrontNode = _IrrAddMeshToScene( $direction )
$BackNode = _IrrAddMeshToScene( $direction )
_IrrSetNodePosition( $FrontNode, 0,0,0-$speed)
_IrrSetNodePosition( $BackNode, 0,0,0+($speed/2))
_IrrAddChildToParent($FrontNode,$ship1_2)
_IrrAddChildToParent($BackNode,$ship1_2)
_IrrAddChildToParent($cam1,$ship1_2)
$RotationAnglex = 0
$RotationAngley = 0
_IrrSetNodePosition($ship1_2,$ship1_X,$ship1_Y,$ship1_Z-1)
_IrrSetCameraTarget($cam1,$ship1_X,$ship1_Y,$ship1_Z-1)
$hBeamNode = _IrrAddBeamSceneNode()
_IrrSetBeamPosition($hBeamNode, 15.0, 20.0, 20.0, -15.0, -20.0, -20.0)
_IrrSetBeamSize($hBeamNode, 0.010)
$hTexture = _IrrGetTexture("beam.png")
_IrrSetNodeMaterialTexture($hBeamNode, $hTexture, 0)
_IrrSetNodeMaterialType($hBeamNode, $IRR_EMT_TRANSPARENT_ADD_COLOR)
While _IrrRunning() And Sleep(10)
    Global $KEY_LMB = _IsPressed ( "01" ) , $KEY_RMB = _IsPressed ( "02" ) , $KEY_MMB = _IsPressed ( "04" ) , $KEY_SPA = _IsPressed ( "20" )
    Global $KEY_NK2 = _IsPressed ( "62" ) , $KEY_NK4 = _IsPressed ( "64" ) , $KEY_NK6 = _IsPressed ( "66" ) , $KEY_NK7 = _IsPressed ( "67" ) , $KEY_NK8 = _IsPressed ( "68" )
    Global $KEY_A = _IsPressed ( "41" ) , $KEY_D = _IsPressed ( "44" ) , $KEY_S = _IsPressed ( "53" ) , $KEY_W = _IsPressed ( "57" )
    Global $KEY_SH = _IsPressed ( "10" )
    Global $KEY_SP = _IsPressed ( "20" )
    If $KEY_W Then
        If $RotationAngley+0.2 > -78 Then $RotationAngley -=0.2
    EndIf
    If $KEY_S Then
        If $RotationAngley+0.2 <  78 Then $RotationAngley +=0.2
    EndIf
    If $KEY_A Then
        $RotationAnglex -=2
    EndIf
    If $KEY_D Then
        $RotationAnglex +=2
    EndIf
    If $KEY_W Or $KEY_S Or $KEY_A Or $KEY_D Then
        $POS = _IrrGetNodeAbsolutePosition( $FrontNode )
        _IrrSetNodeRotation( $ship1_2, $RotationAngley ,$RotationAnglex , 0 )
        _IrrSetNodeRotation( $cam1, 360 ,360 , 0 )
        ToolTip($RotationAngley)
    EndIf
    If $KEY_SH Then
        $POS = _IrrGetNodeAbsolutePosition( $FrontNode )
        _IrrSetNodePosition($ship1_2,$POS[0],$POS[1],$POS[2])
        _IrrSetCameraTarget($cam1,$POS[0],$POS[1],$POS[2])
        _IrrSetBeamPosition($hBeamNode, 0, 0, 0,$POS[0],$POS[1],$POS[2])
    EndIf
    If $KEY_SP Then
        $POS = _IrrGetNodeAbsolutePosition( $BackNode )
        _IrrSetNodePosition($ship1_2,$POS[0],$POS[1],$POS[2])
        _IrrSetCameraTarget($cam1,$POS[0],$POS[1],$POS[2])
        _IrrSetBeamPosition($hBeamNode, 0, 0, 0,$POS[0],$POS[1],$POS[2])
    EndIf
    If $MouseUPDWN = 120 Then
        Select
            Case $state_1 = 9
                Dim $state_2 = 1 , $state_1 = 8
            Case $state_1 = 8
                Dim $state_2 = 2 , $state_1 = 7
            Case $state_1 = 7
                Dim $state_2 = 3 , $state_1 = 6
            Case $state_1 = 6
                Dim $state_2 = 4 , $state_1 = 5
            Case $state_1 = 5
                Dim $state_2 = 5 , $state_1 = 4
            Case $state_1 = 4
                Dim $state_2 = 4 , $state_1 = 3
            Case $state_1 = 3
                Dim $state_2 = 3 , $state_1 = 2
            Case $state_1 = 2
                Dim $state_2 = 2 , $state_1 = 1
            Case $state_1 = 1
                Dim $state_2 = 1 , $state_1 = 0
            Case $state_1 = 0
                Dim $MouseUPDWN = 0,$state_1 = 9
        EndSelect
    ElseIf $MouseUPDWN = -120 Then
        Select
            Case $state_1 = 9
                Dim $state_2 = -1 , $state_1 = 8
            Case $state_1 = 8
                Dim $state_2 = -2 , $state_1 = 7
            Case $state_1 = 7
                Dim $state_2 = -3 , $state_1 = 6
            Case $state_1 = 6
                Dim $state_2 = -4 , $state_1 = 5
            Case $state_1 = 5
                Dim $state_2 = -5 , $state_1 = 4
            Case $state_1 = 4
                Dim $state_2 = -4 , $state_1 = 3
            Case $state_1 = 3
                Dim $state_2 = -3 , $state_1 = 2
            Case $state_1 = 2
                Dim $state_2 = -2 , $state_1 = 1
            Case $state_1 = 1
                Dim $state_2 = -1 , $state_1 = 0
            Case $state_1 = 0
                Dim $MouseUPDWN = 0,$state_1 = 9
        EndSelect
    EndIf
    If $MouseUPDWN = -120 Or $MouseUPDWN = 120 Then
        $POS = _IrrGetNodePosition($cam1)
        _IrrSetNodePosition( $cam1,$POS[0], $POS[1] ,$POS[2]-($state_2*3))
    EndIf
    _IrrBeginScene(240, 255, 255)
    _IrrDrawScene()
    _IrrEndScene()
WEnd
_IrrStop()
Func _wheel ( $nCode , $wParam , $lParam )
    $WheelData =  DllStructGetData ( DllStructCreate ( "long X;long Y;dword WheelData" , $lParam )  , 3 )
    If $wParam = 0x020A And  $MouseUPDWN = 0 Then $MouseUPDWN = BitShift($WheelData, 16)
EndFunc

The problem i have is movement of node and camera tracing him when his position on X and Y is large.

Movement forward is SHIFT key

Try to test difference on movement on pos (edit ini file to change starting pos)

x = 0

y = 0

is normal and i don`t have any problems from camera to focus on the node

Problem is detectable (on my comp) if

X=100000

Y=100000

or set it to even more to see if there is any other difference

9000000

and press SHIFT key to try to move

My comp reaction is that focusing of camera ("_IrrSetCameraTarget") do not precisely set focus on geaven position, instead i get unwanted camera jumping effect that have more and more effect as more and more forward in the space i go.

So is the problem only on my comp?

(needed files attached)

TCP server and client - Learning about TCP servers and clients connection
Au3 oIrrlicht - Irrlicht project
Au3impact - Another 3D DLL game engine for autoit. (3impact 3Drad related)



460px-Thief-4-temp-banner.jpg
There are those that believe that the perfect heist lies in the preparation.
Some say that it’s all in the timing, seizing the right opportunity. Others even say it’s the ability to leave no trace behind, be a ghost.

 
Link to comment
Share on other sites

Hi!

I work with the au3Irrlicht2 engine since oktober 2010 :) I think it´s best Engine for AU3! And i try a lot of these (GDI, GDI+, prospeed, au3Irrlicht2). My biggest problem is the Helpfile, it´s not completed.

I use the au3Irrlicht2 in my projekt and it have a big performance, much more as the other ones! I have here a big projekt with 4000 lines by multitheading with 3 programms and TCP/IP communication. My projekt startet about august last year in stupid 2D 'Amiga-Like' Style, now after many month 3D programming it looks sooo much better with the nice 3D Gfx!! What should i say, i think that i make a Demo 'Pre-Release' of my projekt when i make it work nice; then we could see what´s about the power of the au3Irrlicht2 Engine in work with AutoIt3 :)

Greets from Germany!

(sry for my bad english)

Link to comment
Share on other sites

BogQ:

I'll have to mess around with your code a bit. I keep getting

>"E:\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\Users\Shawn\Desktop\bog.au3" /autoit3dir "e:\AutoIt3" /UserParams

+>20:15:20 Starting AutoIt3Wrapper v.2.0.1.24 Environment(Language:0409 Keyboard:00000409 OS:WIN_7/Service Pack 1 CPU:X64 OS:X64)

>Running AU3Check (1.54.19.0) from:e:\AutoIt3

C:\Users\Shawn\Desktop\bog.au3(7,48) : WARNING: $FrontNode: possibly used before declaration.

$POS = _IrrGetNodeAbsolutePosition( $FrontNode )

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

C:\Users\Shawn\Desktop\bog.au3 - 0 error(s), 1 warning(s)

->20:15:20 AU3Check ended.rc:1

>Running:(3.3.6.1):e:\AutoIt3\autoit3.exe "C:\Users\Shawn\Desktop\bog.au3"

!>20:15:31 AutoIT3.exe ended.rc:-1073741819

>Exit code: -1073741819 Time: 11.919

So I gotta figure out why it's crashing and fix that first.

*edit*

@TechMix:

I look forward to seeing what you create :)

Edited by kaotkbliss

010101000110100001101001011100110010000001101001011100110010000

001101101011110010010000001110011011010010110011100100001

My Android cat and mouse game
https://play.google.com/store/apps/details?id=com.KaosVisions.WhiskersNSqueek

We're gonna need another Timmy!

Link to comment
Share on other sites

bogQ:

Ok, after making some changes (doh on my part, had to give the correct location for the used files) I saw the jumping as you mentioned. Then I saw at the beginning you are saving (then reading later) the xyz all as POS[0].

I changed to

$POS = _IrrGetNodeAbsolutePosition( $FrontNode )

IniWrite("data.ini", "section2", "X", $POS[0])

IniWrite("data.ini", "section2", "Y", $POS[1])

IniWrite("data.ini", "section2", "Z", $POS[2])

reset the ini to 0,0,0 and flew till values when over 10,000, closed and restarted and no jumping :)

*edit*

I think what was happening was it was trying to place the node at one location (where x y z all equalled the same), then place them in the correct position as you moved.

Edited by kaotkbliss

010101000110100001101001011100110010000001101001011100110010000

001101101011110010010000001110011011010010110011100100001

My Android cat and mouse game
https://play.google.com/store/apps/details?id=com.KaosVisions.WhiskersNSqueek

We're gonna need another Timmy!

Link to comment
Share on other sites

I have a problem with an EditBox with attribut $IRR_GUI_PASSWORD. I don't know why is not show asterisks when I type something [seems to be a color problem because the text is there].

#include "au3Irrlicht2.au3"
AutoItSetOption("MustDeclareVars",True)
HotKeySet("{ESC}","Quit")

Dim $GUI_WINDOW, $EVENT, $GUI_ID, $GUI_EVENT
Dim $FONT
Dim $LOGIN_LABEL, $USERNAME_LABEL, $PASSWORD_LABEL
Dim $USERNAME, $PASSWORD, $CONNECT

Global Enum $MY_GUI_BUTTON_CONNECT = 101, _
$MY_GUI_EDITBOX, _
$MY_GUI_PASSWORD

_IrrStart( $IRR_EDT_OPENGL,220,120, $IRR_BITS_PER_PIXEL_32, _
          $IRR_WINDOWED, $IRR_NO_SHADOWS, $IRR_CAPTURE_EVENTS, _
          $IRR_VERTICAL_SYNC_ON )

_IrrSetWindowCaption("Login")

$FONT = _IrrGetFont("bitmapfont.bmp") ;from media dir
_IrrGUISetFont($FONT)

_IrrGUISetColor($EGDC_3D_FACE,160,160,160,255)
_IrrGUISetColor($EGDC_BUTTON_TEXT,255,255,255,255)

$LOGIN_LABEL =  _IrrAddStaticText("LOGIN",10,5,50,15,$IRR_GUI_NO_BORDER,$IRR_GUI_NO_WRAP)
$USERNAME_LABEL = _IrrAddStaticText("USERNAME",10,25,70,40,$IRR_GUI_NO_BORDER,$IRR_GUI_NO_WRAP)
$USERNAME = _IrrAddEditBox("",80,20,200,40,$MY_GUI_EDITBOX,$IRR_GUI_BORDER,$IRR_GUI_NOT_PASSWORD)
$PASSWORD_LABEL = _IrrAddStaticText("PASSWORD",10,55,70,70,$IRR_GUI_NO_BORDER,$IRR_GUI_NO_WRAP)
$PASSWORD = _IrrAddEditBox("",80,50,200,70,$MY_GUI_PASSWORD,$IRR_GUI_BORDER,$IRR_GUI_PASSWORD) ;problem
$CONNECT = _IrrAddButton(80,80,200,100,$MY_GUI_BUTTON_CONNECT,"CONNECT")
_IrrGUIEvents(1)

While _IrrRunning()
    _IrrBeginScene(150,200,0)
    _IrrDrawGUI()
    If _IrrGUIEventAvailable() Then
        $EVENT = _IrrReadGUIEvent()
        $GUI_ID = __getGuiEvt($EVENT,$EVT_GUI_IID)
        $GUI_EVENT = __getGuiEvt($EVENT,$EVT_GUI_IEVENT)
        Switch $GUI_ID
            Case $MY_GUI_BUTTON_CONNECT
                If $GUI_EVENT = $EGET_BUTTON_CLICKED Then
                    MsgBox(0,"",_IrrGUIGetText($USERNAME) & @CRLF & _IrrGUIGetText($PASSWORD))
                EndIf
        EndSwitch
    EndIf
    _IrrEndScene()
WEnd

_IrrStop()

Func Quit()
    _IrrGUIClear()
    _IrrGUIEvents(0)
    _IrrStop()
    Exit
EndFunc

When the words fail... music speaks.

Link to comment
Share on other sites

Andreik

All I did was add

#AutoIt3Wrapper_UseX64=n

AutoItSetOption("TrayIconDebug", 1)

and changed your include to

#include <au3Irrlicht2.au3> (because I keep my Irrlicht in my includes folder)

and used the attached bmp and it worked fine... maybe it is your bmp file?

010101000110100001101001011100110010000001101001011100110010000

001101101011110010010000001110011011010010110011100100001

My Android cat and mouse game
https://play.google.com/store/apps/details?id=com.KaosVisions.WhiskersNSqueek

We're gonna need another Timmy!

Link to comment
Share on other sites

bogQ:

...

reset the ini to 0,0,0 and flew till values when over 10,000, closed and restarted and no jumping

I dont think that is the problem, i just realize this and it was in front my eyes all the time, dont know why i did not seen it sooner

Look at this pos from ini file

First second and third location saved

Z=-23.5425300598145

Z=-473.302215576172

Z=-2646.43115234375

Im losing accuracy on data from position commands every time the pos is larger *10.

The Decimal point is decreasing like hell.

So that is probably why i get strange behavior on movement and camera focus on large distances.

Edited by bogQ

TCP server and client - Learning about TCP servers and clients connection
Au3 oIrrlicht - Irrlicht project
Au3impact - Another 3D DLL game engine for autoit. (3impact 3Drad related)



460px-Thief-4-temp-banner.jpg
There are those that believe that the perfect heist lies in the preparation.
Some say that it’s all in the timing, seizing the right opportunity. Others even say it’s the ability to leave no trace behind, be a ghost.

 
Link to comment
Share on other sites

I see. The decimal precision reduces. It seems _IrrGetNodeAbsolutePosition has a digit limit. Perhaps make multiple areas? say at 10,000 load a new map so the values never go beyond 9,999 mark? (like taking a box and unfolding it)

010101000110100001101001011100110010000001101001011100110010000

001101101011110010010000001110011011010010110011100100001

My Android cat and mouse game
https://play.google.com/store/apps/details?id=com.KaosVisions.WhiskersNSqueek

We're gonna need another Timmy!

Link to comment
Share on other sites

I have a problem again. I spent all my night creating a simple table with 3DS MAX and I save it as a 3ds file. I tried to load it using irrlicht but without any succes. This is my code:

#include "au3Irrlicht2.au3"
AutoItSetOption("MustDeclareVars",True)
HotKeySet("{ESC}", "_exit")

Func _exit()
    _IrrStop()
    Exit
EndFunc

DIM $MESH, $NODE, $CAMERA

_IrrStart( $IRR_EDT_OPENGL, 800, 600, $IRR_BITS_PER_PIXEL_32, _
        $IRR_WINDOWED, $IRR_SHADOWS, $IRR_CAPTURE_EVENTS, $IRR_VERTICAL_SYNC_ON )
_IrrSetWindowCaption( "Table" )
$MESH = _IrrGetMesh(@ScriptDir & "\table.3ds")
$NODE = _IrrAddMeshToScene($MESH)
_IrrPlayNodeMD2Animation($NODE,$IRR_EMAT_STAND)
$CAMERA = _IrrAddCamera( 0,0,0, 0,0,0 )

WHILE _IrrRunning()
    _IrrBeginScene(255,255,255)
    _IrrDrawScene()
    _IrrDrawGUI()
    _IrrEndScene()
WEND
_IrrStop()

I attached table.3ds file, maybe is something wrong with this file not with the code.

table.rar

When the words fail... music speaks.

Link to comment
Share on other sites

I have a problem again. I spent all my night creating a simple table with 3DS MAX and I save it as a 3ds file. I tried to load it using irrlicht but without any succes.

you are placing the camera inside the model. Try $CAMERA = _IrrAddCamera( [somethingGreaterThenModelSize],0,0, 0,0,0 ).

Maybe worth to spend also a night (again) with e.g. example 004 to get some basic understanding of principle usage :)

Link to comment
Share on other sites

  • 1 month later...

(to bust some life to this topic :> ) Only small demonstration type demo , to movement, some object limiting your movement, mouse coordinates on 3d world, simple light effect night day (when changing computer local time, or you rather prefer to w8 4 it :unsure: )

Probably will update it when i find time to correct sun distance bug, to add mob animation and movement, and some other small fixes.

Link

edited to add small video

http://www.youtube.com/watch?v=cCBG6C-XmsU

Edited by bogQ

TCP server and client - Learning about TCP servers and clients connection
Au3 oIrrlicht - Irrlicht project
Au3impact - Another 3D DLL game engine for autoit. (3impact 3Drad related)



460px-Thief-4-temp-banner.jpg
There are those that believe that the perfect heist lies in the preparation.
Some say that it’s all in the timing, seizing the right opportunity. Others even say it’s the ability to leave no trace behind, be a ghost.

 
Link to comment
Share on other sites

WOW! Great work BogQ! I haven't messed with pc time to see night/day yet, but the rest of it is fantasitc :unsure:

010101000110100001101001011100110010000001101001011100110010000

001101101011110010010000001110011011010010110011100100001

My Android cat and mouse game
https://play.google.com/store/apps/details?id=com.KaosVisions.WhiskersNSqueek

We're gonna need another Timmy!

Link to comment
Share on other sites

@bogQ

That is actually rather epic. One thing I'd suggest, is move the camera with the mouse instead fo the arrow keys, and have arrow keys be able to move the char sideways. As of now movement feels a little.....unnatural

Other then control issues, good work! This is actually very impressive

Edited by corgano

0x616e2069646561206973206c696b652061206d616e20776974686f7574206120626f64792c20746f206669676874206f6e6520697320746f206e657665722077696e2e2e2e2e

Link to comment
Share on other sites

corgano,

I`m afraid that i don`t fully understand you

Do you suggest that camera need more freedom on mouse not turn around char on right click?

I have cam that i did not add up there that look more natural, on right click camera will not turn the char around, so only cam will move in circle, but on turning the char with keys camera will still turn around with him under the angle that you set with right click, that cam have at the moment one main sub setting that allow camera to boomerang back to 0 post behind the char after you release right click, did not include it only because at the moment boomerang speed depends on frame rate and not on time interval and because i want to add one more sub setting that camera can boomerang back only when char start moving.

If your suggesting that camera don`t b ChildToParent to main node turning (i did try that tonight), i do not see the point of char going around in circle and camera to not have any effect on his turning and only to his absolute pos.

Edited by bogQ

TCP server and client - Learning about TCP servers and clients connection
Au3 oIrrlicht - Irrlicht project
Au3impact - Another 3D DLL game engine for autoit. (3impact 3Drad related)



460px-Thief-4-temp-banner.jpg
There are those that believe that the perfect heist lies in the preparation.
Some say that it’s all in the timing, seizing the right opportunity. Others even say it’s the ability to leave no trace behind, be a ghost.

 
Link to comment
Share on other sites

  • 1 month later...

Define rotated,

eather way i think that there isnt command for rotating texture at the moment

you can always try it like this with _IrrSetCameraFOV, this test is on cybe, ofc you can use some other object if you need.

#include "au3Irrlicht2.au3"
HotKeySet("{LEFT}","Le")
HotKeySet("{Right}","Ri")

Global $a = 0
Global $aVector3df[3]
$aVector3df[2] = 3000
$aVector3df[0] = 0

_IrrStart()
local $nodeTest = _IrrAddCubeSceneNode(10)
_IrrSetNodeMaterialTexture( $nodeTest, _IrrGetTexture(".\media\au3irr2_logo.jpg"), 0)
_IrrSetNodeMaterialFlag( $nodeTest, $IRR_EMF_LIGHTING, $IRR_OFF )
local $camera = _IrrAddCamera($aVector3df[0],$aVector3df[1],$aVector3df[2], 0,0,0 )
_IrrSetCameraFOV($Camera, 0.01)

WHILE _IrrRunning()
    _IrrBeginScene(0, 0, 0)
    _IrrSetNodeRotation($nodeTest, 0,0,$a)
    $a += 0.1
    _IrrSetNodePosition($camera,$aVector3df[0],$aVector3df[1],$aVector3df[2])
    _IrrSetCameraTarget($camera, $aVector3df[0],0,0)
    _IrrDrawScene()
    _IrrEndScene()
WEND

_IrrStop()

;~ Func _Move($Distance, $rotation)
;~     Local $a[2]
;~     $pi = 3.1415926535897932384626433832795
;~     $a[0]= Int(-cos((2*$pi/360)*($rotation+90))*$Distance)
;~     $a[1]= Int(sin((2*$pi/360)*($rotation+90))*$Distance)
;~     Return $a
;~ EndFunc

Func Le()
    $aVector3df = _IrrGetNodePosition($camera)
    $aVector3df[0] -= 0.1
EndFunc

Func Ri()
    $aVector3df = _IrrGetNodePosition($camera)
    $aVector3df[0] += 0.1
EndFunc
Edited by bogQ

TCP server and client - Learning about TCP servers and clients connection
Au3 oIrrlicht - Irrlicht project
Au3impact - Another 3D DLL game engine for autoit. (3impact 3Drad related)



460px-Thief-4-temp-banner.jpg
There are those that believe that the perfect heist lies in the preparation.
Some say that it’s all in the timing, seizing the right opportunity. Others even say it’s the ability to leave no trace behind, be a ghost.

 
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...