Difference between revisions of "Script - Ship Viewer"
From FreeSpace Wiki
m (header, spelling) |
|||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | Prevents game itself from loading, but instead loads a ship viewer.<br> | |
− | Prevents game itself from loading but instead loads a ship viewer.<br> | + | Moving mouse cursor with mouse button pressed to: |
− | Moving mouse cursor with mouse | ||
{| | {| | ||
| width=150px|Upper left corner | | width=150px|Upper left corner | ||
Line 112: | Line 111: | ||
--Finally, render the ship | --Finally, render the ship | ||
render_ship = tb.getShipClassByIndex(count) | render_ship = tb.getShipClassByIndex(count) | ||
− | render_ship:renderTechModel(0, 0, gr.getScreenWidth()-1, gr.getScreenHeight()-1 | + | render_ship:renderTechModel(0, 0, gr.getScreenWidth()-1, gr.getScreenHeight()-1, rotate_pct, pitch, bank, zoom) |
] | ] | ||
− | +Override: | + | +Override: true |
#End</pre> | #End</pre> | ||
− | [[Category:Scripting Examples]] | + | [[Category:Scripting Examples|Ship Viewer]] |
Latest revision as of 19:31, 18 April 2010
Prevents game itself from loading, but instead loads a ship viewer.
Moving mouse cursor with mouse button pressed to:
Upper left corner | Goes to next ship |
Upper right corner | Zooms in |
Lower left corner | Exits |
Lower right corner | Zooms out |
Table Entry
#State Hooks $State: GS_STATE_INITIAL_PLAYER_SELECT $Hook: [ --Set default values if not rotate_pct then rotate_pct = 40 end if not pitch then pitch = 0 end if not bank then bank = 0 end if not count then count = 1 end if not zoom then zoom = 1.3 end --Figure out if we need to check for triggers --upper-left:#1 Goes to next ship --upper-right:#2 Zooms in --lower-left:#3 Quits --lower-right:#4 Zooms out if ms.getX() == 0 and ms.getY() == 0 then trig = 1 elseif ms.getX()==(gr.getScreenWidth()-1) and ms.getY()==0 then trig = 2 elseif ms.getX()==0 and ms.getY()==(gr.getScreenHeight()-1) then trig = 3 elseif ms.getX()==(gr.getScreenWidth()-1) and ms.getY()==(gr.getScreenHeight()-1) then trig = 4 else trig = 0 end --Do we need to activate trigger? --Make sure that if the mouse is held down for --more than one frame, trigger doesn't activate multiple times if trig>0 then if not middle_was_down then middle_was_down = ms.isButtonDown("Left") activate_trig = middle_was_down elseif ms.isButtonDown("Left")==true then middle_was_down = true activate_trig = false else middle_was_down = false activate_trig = false end else middle_was_down = false activate_trig = false end --Do trigger actions if activate_trig then if trig==1 then count = count + 1 if count > tb.getNumShipClasses() then count = 1 end elseif trig==2 then zoom = zoom-0.1 elseif trig==3 then ba.setEvent("GS_EVENT_QUIT_GAME") elseif trig==4 then zoom = zoom+0.1 end end --If no triggers, do normal mouse stuff --Left changes heading --Middle changes pitch --Right changes bank if trig==0 then if ms.isButtonDown("Left") then rotate_pct = (1-ms.getX()/gr.getScreenWidth())*100 end if ms.isButtonDown("Middle") then pitch = (1-ms.getY()/gr.getScreenHeight())*100 end if ms.isButtonDown("Right") then bank = ms.getX()/gr.getScreenWidth()*100 end end --Finally, render the ship render_ship = tb.getShipClassByIndex(count) render_ship:renderTechModel(0, 0, gr.getScreenWidth()-1, gr.getScreenHeight()-1, rotate_pct, pitch, bank, zoom) ] +Override: true #End