Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
McMagic
Založen: 06. 08. 2012 Příspěvky: 615
|
Zaslal: 16. únor 2013, 11:43:06 Předmět: HW vs SW mouse cursor |
|
|
Zdravím,
předem se omlouvám zdali to je začátečnická otázka, ale v tomto nemám 100% jasno...
Jedná se o to jakou verzi kurzoru defaultně použít?
Zdali SW nebo HW verzi.
Ve svém projektu mám momentálně implementované obě dvě verze.
SW cursor mě přijde ale pomalejší na pohyb.
HW je dle mne lepší, ale zase se nerenderuje při nahrávání videa třeba.
Nejsem si jist který použít jako výchozí - osobně bych asi volil HW a pokud bude někomu dělat problémy, tak si v options přepne na SW.
Dále nevím jak moc která verze ovlivňuje výkon?
SW jakoby nasleduje pozici HW kurzoru a přijde mě že zbytečně ovlivňuje výkon.
Ve hře bude změna kurzoru zásadní pro hraní - reakce na objekty atd.
Díky moc za pomoc.
-------------------
Zde je ukázka jak se chová SW kurzor (to video reflektuje interakci se SpeedTree - které bohužel nejdou klasicky zaměřit myší - což jsem obešel, ale i tak nelze udělat target a proto je zásadní ta změna cursoru aby hráč věděl, že může provést interakci atd.)
http://youtu.be/nHXbaGepJ-U |
|
Návrat nahoru |
|
 |
McMagic
Založen: 06. 08. 2012 Příspěvky: 615
|
Zaslal: 16. únor 2013, 13:20:34 Předmět: Re: HW vs SW mouse cursor |
|
|
Tak jsem si vyladil funkci na HW a SW cursor:)
Je to pro jistotu než vyřeším jaký defaultně použít (dle všeho co jsem již zjistil to bude HW), ale tak jako tak musím ponechat možnost aby si uživatel změnil dle potřeby.
Při startu hry se spustí vytvoření GUI pro SW cursor:
kód: |
//BUILD cursor
NI_GUI_cursor as NodeRef of Class NI_game_cursor = FindGUIControlByName(0,"cursor.NI_game_cursor")
if NI_GUI_cursor != None
destroynode(NI_GUI_cursor)
.
NI_GUI_cursor = CreateNodeFromPrototype( "NI_game_cursor" )
NI_GUI_cursor.layer = "cursor"
NI_GUI_cursor.build = true
|
Samotná třída na cursor:
kód: |
method onControlBuild()
//set HW cursor
me.set_hw_cursor()//default hw set
.
method get_cursor_gui() as NodeRef of Class NI_game_cursor
NI_GUI_cursor as NodeRef of Class NI_game_cursor = FindGUIControlByName(0,"cursor.NI_game_cursor")
return NI_GUI_cursor
.
method set_hw_cursor()
UnRegisterForPerFrameCallback(SYSTEM.EXEC.THISSCRIPT)
me.NI_cursor_is_hw = true
//HW
SetCursorVisibility(true)
//SW
me.get_cursor_gui().visible = false
//
me.set_cursor_ico("DEFAULT")
println("HW cursor SET")
.
method set_sw_cursor()
RegisterForPerFrameCallback(SYSTEM.EXEC.THISSCRIPT)
me.NI_cursor_is_hw = false
//HW
SetCursorVisibility(true)
SetCursor("\GUI\NI_NEW\cursor_none.png")//SetCursor("")//restore default hw cursor
//SW
me.get_cursor_gui().visible = true
//
me.set_cursor_ico("DEFAULT")
println("SW cursor SET")
.
method ishwcursor() as Boolean
return me.NI_cursor_is_hw
.
method set_cursor_ico(state as String)
when state
is "DEFAULT"
if( me.ishwcursor() == true)
SetCursor("\GUI\NI_NEW\test_hw_cursor_off.png")
else
me.get_cursor_gui().texture = "\GUI\NI_NEW\test_cursor_off.png"
.
.
is "OBJECT_ENTER"
if( me.ishwcursor() == true)
SetCursor("\GUI\NI_NEW\test_hw_cursor_on.png")
else
me.get_cursor_gui().texture = "\GUI\NI_NEW\test_cursor_on.png"
.
.
default
if( me.ishwcursor() == true)
SetCursor("\GUI\NI_NEW\test_hw_cursor_off.png")
else
me.get_cursor_gui().texture = "\GUI\NI_NEW\test_cursor_off.png"
.
.
.
.
function onFrameUpdate(elap as TimeInterval)
if( $NI_GAMECURSOR.ishwcursor() != true )
$NI_GAMECURSOR.get_cursor_gui().positionControlAtMouse()
.
.
|
Test funkce na přepnutí SW nebo HW cursoru:
kód: |
is "ni_gui_basicgui_btn_hwcursor"
if( $NI_GAMECURSOR.ishwcursor() == true)
$NI_GAMECURSOR.set_sw_cursor()
else
$NI_GAMECURSOR.set_hw_cursor()
.
.
|
Onmouse efekt volán při najetí na objekt:
kód: |
is Enter
$NI_GAMECURSOR.set_cursor_ico("OBJECT_ENTER")
.
is Leave
$NI_GAMECURSOR.set_cursor_ico("DEFAULT")
.
|
Vše funguje ok a dobře [/code] |
|
Návrat nahoru |
|
 |
|
|
Nemůžete odesílat nové téma do tohoto fóra Nemůžete odpovídat na témata v tomto fóru Nemůžete upravovat své příspěvky v tomto fóru Nemůžete mazat své příspěvky v tomto fóru Nemůžete hlasovat v tomto fóru
|
Powered by phpBB © 2001, 2005 phpBB Group
Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna