12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- extends Spatial
- # member variables here, example:
- # var a=2
- # var b="textvar"
- var prev_pos=null
- func _input( ev ):
- #all other (non-mouse) events
- if (not ev.type in [InputEvent.MOUSE_BUTTON,InputEvent.MOUSE_MOTION,InputEvent.SCREEN_DRAG,InputEvent.SCREEN_TOUCH]):
- get_node("viewport").input(ev)
-
-
- #mouse events for area
- func _on_area_input_event( camera, ev, click_pos, click_normal, shape_idx ):
-
- #use click pos (click in 3d space, convert to area space
- var pos = get_node("area").get_global_transform().affine_inverse() * click_pos
- #convert to 2D
- pos = Vector2(pos.x,pos.y)
- #convert to viewport coordinate system
- pos.x=(pos.x+1.5)*100
- pos.y=(-pos.y+0.75)*100
- #set to event
- ev.pos=pos
- ev.global_pos=pos
- if (prev_pos==null):
- prev_pos=pos
- if (ev.type==InputEvent.MOUSE_MOTION):
- ev.relative_pos=pos-prev_pos
- prev_pos=pos
-
- get_node("viewport").input(ev)
-
-
- func _ready():
- # Initalization here
- get_node("area/quad").get_material_override().set_texture(FixedMaterial.PARAM_DIFFUSE, get_node("viewport").get_render_target_texture() )
- set_process_input(true)
- pass
|