瀏覽代碼

3D Physics Rework, Other Stuff
-=-=-=-=-=-=-=-=-=-=-=-=-=-

3D Physics:
-Fixed "Bounce" parameter in 3D
-Fixed bug affecting Area (sometims it would not detect properly)
-Vehicle Body has seen heavy work
-Added Query API for doing space queries in 3D. Needs some docs though.
-Added JOINTS! Adapted Bullet Joints: and created easy gizmos for setting them up:
-PinJoint
-HingeJoint (with motor)
-SliderJoint
-ConeTwistJoint
-Generic6DOFJoint
-Added OBJECT PICKING! based on the new query API. Any physics object now (Area or Body) has the following signals and virtual functions:
-input_event (mouse or multitouch input over the body)
-mouse_enter (mouse entered the body area)
-mouse_exit (mouse exited body area)
For Area it needs to be activated manually, as it isn't by default (ray goes thru).

Other:

-Begun working on Windows 8 (RT) port. Compiles but does not work yet.
-Added TheoraPlayer library for improved to-texture and portable video support.
-Fixed a few bugs in the renderer, collada importer, collada exporter, etc.

Juan Linietsky 11 年之前
父節點
當前提交
9beac7b56a
共有 5 個文件被更改,包括 37 次插入0 次删除
  1. 二進制
      3d/kinematic_char/level.scn
  2. 5 0
      3d/mousepick_test/engine.cfg
  3. 二進制
      3d/mousepick_test/icon.png
  4. 32 0
      3d/mousepick_test/mousepick.gd
  5. 二進制
      3d/mousepick_test/mousepick.scn

二進制
3d/kinematic_char/level.scn


+ 5 - 0
3d/mousepick_test/engine.cfg

@@ -0,0 +1,5 @@
+[application]
+
+name="3D Mouse Picking Test"
+main_scene="res://mousepick.scn"
+icon="res://icon.png"

二進制
3d/mousepick_test/icon.png


+ 32 - 0
3d/mousepick_test/mousepick.gd

@@ -0,0 +1,32 @@
+
+extends RigidBody
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+var gray_mat = FixedMaterial.new()
+
+var selected=false
+
+func _input_event(event,pos,normal,shape):
+	if (event.type==InputEvent.MOUSE_BUTTON and event.pressed):
+		if (not selected):
+			get_node("mesh").set_material_override(gray_mat)
+		else:
+			get_node("mesh").set_material_override(null)
+		
+		selected = not selected
+		
+
+func _mouse_enter():
+	get_node("mesh").set_scale( Vector3(1.1,1.1,1.1) )
+
+func _mouse_exit():
+	get_node("mesh").set_scale( Vector3(1,1,1) )
+
+func _ready():
+	# Initalization here
+	pass
+
+

二進制
3d/mousepick_test/mousepick.scn