浏览代码

lot of work on 2D lighting and isometric maps

added a new demo, isometric_light that does full isometric sorting,
lights, shadows, etc.
Juan Linietsky 10 年之前
父节点
当前提交
6745cb4078
共有 100 个文件被更改,包括 96 次插入0 次删除
  1. 二进制
      2d/isometric_light/character_shder.res
  2. 二进制
      2d/isometric_light/column.scn
  3. 96 0
      2d/isometric_light/cubio.gd
  4. 二进制
      2d/isometric_light/cubio.scn
  5. 二进制
      2d/isometric_light/cubio/idle0001.png
  6. 二进制
      2d/isometric_light/cubio/idle0002.png
  7. 二进制
      2d/isometric_light/cubio/idle0003.png
  8. 二进制
      2d/isometric_light/cubio/idle0004.png
  9. 二进制
      2d/isometric_light/cubio/idle0005.png
  10. 二进制
      2d/isometric_light/cubio/idle0006.png
  11. 二进制
      2d/isometric_light/cubio/idle0007.png
  12. 二进制
      2d/isometric_light/cubio/idle0008.png
  13. 二进制
      2d/isometric_light/cubio/idle0009.png
  14. 二进制
      2d/isometric_light/cubio/idle0010.png
  15. 二进制
      2d/isometric_light/cubio/idle0011.png
  16. 二进制
      2d/isometric_light/cubio/idle0012.png
  17. 二进制
      2d/isometric_light/cubio/idle0013.png
  18. 二进制
      2d/isometric_light/cubio/idle0014.png
  19. 二进制
      2d/isometric_light/cubio/idle0015.png
  20. 二进制
      2d/isometric_light/cubio/idle0016.png
  21. 二进制
      2d/isometric_light/cubio/idle0017.png
  22. 二进制
      2d/isometric_light/cubio/idle0018.png
  23. 二进制
      2d/isometric_light/cubio/idle0019.png
  24. 二进制
      2d/isometric_light/cubio/idle0020.png
  25. 二进制
      2d/isometric_light/cubio/idle0021.png
  26. 二进制
      2d/isometric_light/cubio/idle0022.png
  27. 二进制
      2d/isometric_light/cubio/idle0023.png
  28. 二进制
      2d/isometric_light/cubio/idle0024.png
  29. 二进制
      2d/isometric_light/cubio/idle0025.png
  30. 二进制
      2d/isometric_light/cubio/idle0026.png
  31. 二进制
      2d/isometric_light/cubio/idle0027.png
  32. 二进制
      2d/isometric_light/cubio/idle0028.png
  33. 二进制
      2d/isometric_light/cubio/idle0029.png
  34. 二进制
      2d/isometric_light/cubio/idle0030.png
  35. 二进制
      2d/isometric_light/cubio/idle0031.png
  36. 二进制
      2d/isometric_light/cubio/idle0032.png
  37. 二进制
      2d/isometric_light/cubio/idle0033.png
  38. 二进制
      2d/isometric_light/cubio/idle0034.png
  39. 二进制
      2d/isometric_light/cubio/idle0035.png
  40. 二进制
      2d/isometric_light/cubio/idle0036.png
  41. 二进制
      2d/isometric_light/cubio/idle0037.png
  42. 二进制
      2d/isometric_light/cubio/idle0038.png
  43. 二进制
      2d/isometric_light/cubio/idle0039.png
  44. 二进制
      2d/isometric_light/cubio/idle0040.png
  45. 二进制
      2d/isometric_light/cubio/idle0041.png
  46. 二进制
      2d/isometric_light/cubio/idle0042.png
  47. 二进制
      2d/isometric_light/cubio/idle0043.png
  48. 二进制
      2d/isometric_light/cubio/idle0044.png
  49. 二进制
      2d/isometric_light/cubio/idle0045.png
  50. 二进制
      2d/isometric_light/cubio/idle0046.png
  51. 二进制
      2d/isometric_light/cubio/idle0047.png
  52. 二进制
      2d/isometric_light/cubio/idle0048.png
  53. 二进制
      2d/isometric_light/cubio/idle0049.png
  54. 二进制
      2d/isometric_light/cubio/idle0050.png
  55. 二进制
      2d/isometric_light/cubio/idle0051.png
  56. 二进制
      2d/isometric_light/cubio/idle0052.png
  57. 二进制
      2d/isometric_light/cubio/idle0053.png
  58. 二进制
      2d/isometric_light/cubio/idle0054.png
  59. 二进制
      2d/isometric_light/cubio/idle0055.png
  60. 二进制
      2d/isometric_light/cubio/idle0056.png
  61. 二进制
      2d/isometric_light/cubio/idle0057.png
  62. 二进制
      2d/isometric_light/cubio/idle0058.png
  63. 二进制
      2d/isometric_light/cubio/idle0059.png
  64. 二进制
      2d/isometric_light/cubio/idle0060.png
  65. 二进制
      2d/isometric_light/cubio/norm-b-0001.png
  66. 二进制
      2d/isometric_light/cubio/norm-b-0002.png
  67. 二进制
      2d/isometric_light/cubio/norm-b-0003.png
  68. 二进制
      2d/isometric_light/cubio/norm-b-0004.png
  69. 二进制
      2d/isometric_light/cubio/norm-b-0005.png
  70. 二进制
      2d/isometric_light/cubio/norm-b-0006.png
  71. 二进制
      2d/isometric_light/cubio/norm-b-0007.png
  72. 二进制
      2d/isometric_light/cubio/norm-b-0008.png
  73. 二进制
      2d/isometric_light/cubio/norm-b-0009.png
  74. 二进制
      2d/isometric_light/cubio/norm-b-0010.png
  75. 二进制
      2d/isometric_light/cubio/norm-b-0011.png
  76. 二进制
      2d/isometric_light/cubio/norm-b-0012.png
  77. 二进制
      2d/isometric_light/cubio/norm-b-0013.png
  78. 二进制
      2d/isometric_light/cubio/norm-b-0014.png
  79. 二进制
      2d/isometric_light/cubio/norm-b-0015.png
  80. 二进制
      2d/isometric_light/cubio/norm-b-0016.png
  81. 二进制
      2d/isometric_light/cubio/norm-b-0017.png
  82. 二进制
      2d/isometric_light/cubio/norm-b-0018.png
  83. 二进制
      2d/isometric_light/cubio/norm-b-0019.png
  84. 二进制
      2d/isometric_light/cubio/norm-b-0020.png
  85. 二进制
      2d/isometric_light/cubio/norm-bl-0001.png
  86. 二进制
      2d/isometric_light/cubio/norm-bl-0002.png
  87. 二进制
      2d/isometric_light/cubio/norm-bl-0003.png
  88. 二进制
      2d/isometric_light/cubio/norm-bl-0004.png
  89. 二进制
      2d/isometric_light/cubio/norm-bl-0005.png
  90. 二进制
      2d/isometric_light/cubio/norm-bl-0006.png
  91. 二进制
      2d/isometric_light/cubio/norm-bl-0007.png
  92. 二进制
      2d/isometric_light/cubio/norm-bl-0008.png
  93. 二进制
      2d/isometric_light/cubio/norm-bl-0009.png
  94. 二进制
      2d/isometric_light/cubio/norm-bl-0010.png
  95. 二进制
      2d/isometric_light/cubio/norm-bl-0011.png
  96. 二进制
      2d/isometric_light/cubio/norm-bl-0012.png
  97. 二进制
      2d/isometric_light/cubio/norm-bl-0013.png
  98. 二进制
      2d/isometric_light/cubio/norm-bl-0014.png
  99. 二进制
      2d/isometric_light/cubio/norm-bl-0015.png
  100. 二进制
      2d/isometric_light/cubio/norm-bl-0016.png

二进制
2d/isometric_light/character_shder.res


二进制
2d/isometric_light/column.scn


+ 96 - 0
2d/isometric_light/cubio.gd

@@ -0,0 +1,96 @@
+
+extends KinematicBody2D
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+const MAX_SPEED = 300.0
+const IDLE_SPEED = 10.0
+const ACCEL=5.0
+const VSCALE=0.5
+const SHOOT_INTERVAL=0.3
+
+var speed=Vector2()
+var current_anim=""
+var current_mirror=false
+
+var shoot_countdown=0
+
+func _input(ev):
+	if (ev.type==InputEvent.MOUSE_BUTTON and ev.button_index==1 and ev.pressed and shoot_countdown<=0):
+		var pos = get_canvas_transform().affine_inverse() * ev.pos
+		var dir = (pos-get_global_pos()).normalized()
+		var bullet = preload("res://shoot.scn").instance()
+		bullet.advance_dir=dir
+		bullet.set_pos( get_global_pos() + dir * 60 )
+		get_parent().add_child(bullet)
+		shoot_countdown=SHOOT_INTERVAL
+		
+		
+		
+
+func _fixed_process(delta):
+	
+	shoot_countdown-=delta
+	var dir = Vector2()
+	if (Input.is_action_pressed("up")):
+		dir+=Vector2(0,-1)
+	if (Input.is_action_pressed("down")):
+		dir+=Vector2(0,1)
+	if (Input.is_action_pressed("left")):
+		dir+=Vector2(-1,0)
+	if (Input.is_action_pressed("right")):
+		dir+=Vector2(1,0)
+		
+	if (dir!=Vector2()):
+		dir=dir.normalized()
+	speed = speed.linear_interpolate(dir*MAX_SPEED,delta*ACCEL)
+	var motion = speed * delta
+	motion.y*=VSCALE
+	motion=move(motion)
+	
+	if (is_colliding()):
+		var n = get_collision_normal()
+		motion=n.slide(motion)
+		move(motion)
+
+	var next_anim=""
+	var next_mirror=false
+	
+	if (dir==Vector2() and speed.length()<IDLE_SPEED):
+		next_anim="idle"
+		next_mirror=false
+	elif (speed.length()>IDLE_SPEED*0.1):
+		var angle = atan2(abs(speed.x),speed.y)	
+		
+		next_mirror = speed.x>0
+		if (angle<PI/8):
+			next_anim="bottom"
+			next_mirror=false
+		elif (angle<PI/4+PI/8):
+			next_anim="bottom_left"
+		elif (angle<PI*2/4+PI/8):
+			next_anim="left"
+		elif (angle<PI*3/4+PI/8):
+			next_anim="top_left"
+		else:
+			next_anim="top"
+			next_mirror=false
+		
+			
+	if (next_anim!=current_anim or next_mirror!=current_mirror):
+		get_node("frames").set_flip_h(next_mirror)
+		get_node("anim").play(next_anim)
+		current_anim=next_anim
+		current_mirror=next_mirror
+		
+
+
+func _ready():
+	# Initialization here
+	set_fixed_process(true)
+	set_process_input(true)
+	pass
+
+

二进制
2d/isometric_light/cubio.scn


二进制
2d/isometric_light/cubio/idle0001.png


二进制
2d/isometric_light/cubio/idle0002.png


二进制
2d/isometric_light/cubio/idle0003.png


二进制
2d/isometric_light/cubio/idle0004.png


二进制
2d/isometric_light/cubio/idle0005.png


二进制
2d/isometric_light/cubio/idle0006.png


二进制
2d/isometric_light/cubio/idle0007.png


二进制
2d/isometric_light/cubio/idle0008.png


二进制
2d/isometric_light/cubio/idle0009.png


二进制
2d/isometric_light/cubio/idle0010.png


二进制
2d/isometric_light/cubio/idle0011.png


二进制
2d/isometric_light/cubio/idle0012.png


二进制
2d/isometric_light/cubio/idle0013.png


二进制
2d/isometric_light/cubio/idle0014.png


二进制
2d/isometric_light/cubio/idle0015.png


二进制
2d/isometric_light/cubio/idle0016.png


二进制
2d/isometric_light/cubio/idle0017.png


二进制
2d/isometric_light/cubio/idle0018.png


二进制
2d/isometric_light/cubio/idle0019.png


二进制
2d/isometric_light/cubio/idle0020.png


二进制
2d/isometric_light/cubio/idle0021.png


二进制
2d/isometric_light/cubio/idle0022.png


二进制
2d/isometric_light/cubio/idle0023.png


二进制
2d/isometric_light/cubio/idle0024.png


二进制
2d/isometric_light/cubio/idle0025.png


二进制
2d/isometric_light/cubio/idle0026.png


二进制
2d/isometric_light/cubio/idle0027.png


二进制
2d/isometric_light/cubio/idle0028.png


二进制
2d/isometric_light/cubio/idle0029.png


二进制
2d/isometric_light/cubio/idle0030.png


二进制
2d/isometric_light/cubio/idle0031.png


二进制
2d/isometric_light/cubio/idle0032.png


二进制
2d/isometric_light/cubio/idle0033.png


二进制
2d/isometric_light/cubio/idle0034.png


二进制
2d/isometric_light/cubio/idle0035.png


二进制
2d/isometric_light/cubio/idle0036.png


二进制
2d/isometric_light/cubio/idle0037.png


二进制
2d/isometric_light/cubio/idle0038.png


二进制
2d/isometric_light/cubio/idle0039.png


二进制
2d/isometric_light/cubio/idle0040.png


二进制
2d/isometric_light/cubio/idle0041.png


二进制
2d/isometric_light/cubio/idle0042.png


二进制
2d/isometric_light/cubio/idle0043.png


二进制
2d/isometric_light/cubio/idle0044.png


二进制
2d/isometric_light/cubio/idle0045.png


二进制
2d/isometric_light/cubio/idle0046.png


二进制
2d/isometric_light/cubio/idle0047.png


二进制
2d/isometric_light/cubio/idle0048.png


二进制
2d/isometric_light/cubio/idle0049.png


二进制
2d/isometric_light/cubio/idle0050.png


二进制
2d/isometric_light/cubio/idle0051.png


二进制
2d/isometric_light/cubio/idle0052.png


二进制
2d/isometric_light/cubio/idle0053.png


二进制
2d/isometric_light/cubio/idle0054.png


二进制
2d/isometric_light/cubio/idle0055.png


二进制
2d/isometric_light/cubio/idle0056.png


二进制
2d/isometric_light/cubio/idle0057.png


二进制
2d/isometric_light/cubio/idle0058.png


二进制
2d/isometric_light/cubio/idle0059.png


二进制
2d/isometric_light/cubio/idle0060.png


二进制
2d/isometric_light/cubio/norm-b-0001.png


二进制
2d/isometric_light/cubio/norm-b-0002.png


二进制
2d/isometric_light/cubio/norm-b-0003.png


二进制
2d/isometric_light/cubio/norm-b-0004.png


二进制
2d/isometric_light/cubio/norm-b-0005.png


二进制
2d/isometric_light/cubio/norm-b-0006.png


二进制
2d/isometric_light/cubio/norm-b-0007.png


二进制
2d/isometric_light/cubio/norm-b-0008.png


二进制
2d/isometric_light/cubio/norm-b-0009.png


二进制
2d/isometric_light/cubio/norm-b-0010.png


二进制
2d/isometric_light/cubio/norm-b-0011.png


二进制
2d/isometric_light/cubio/norm-b-0012.png


二进制
2d/isometric_light/cubio/norm-b-0013.png


二进制
2d/isometric_light/cubio/norm-b-0014.png


二进制
2d/isometric_light/cubio/norm-b-0015.png


二进制
2d/isometric_light/cubio/norm-b-0016.png


二进制
2d/isometric_light/cubio/norm-b-0017.png


二进制
2d/isometric_light/cubio/norm-b-0018.png


二进制
2d/isometric_light/cubio/norm-b-0019.png


二进制
2d/isometric_light/cubio/norm-b-0020.png


二进制
2d/isometric_light/cubio/norm-bl-0001.png


二进制
2d/isometric_light/cubio/norm-bl-0002.png


二进制
2d/isometric_light/cubio/norm-bl-0003.png


二进制
2d/isometric_light/cubio/norm-bl-0004.png


二进制
2d/isometric_light/cubio/norm-bl-0005.png


二进制
2d/isometric_light/cubio/norm-bl-0006.png


二进制
2d/isometric_light/cubio/norm-bl-0007.png


二进制
2d/isometric_light/cubio/norm-bl-0008.png


二进制
2d/isometric_light/cubio/norm-bl-0009.png


二进制
2d/isometric_light/cubio/norm-bl-0010.png


二进制
2d/isometric_light/cubio/norm-bl-0011.png


二进制
2d/isometric_light/cubio/norm-bl-0012.png


二进制
2d/isometric_light/cubio/norm-bl-0013.png


二进制
2d/isometric_light/cubio/norm-bl-0014.png


二进制
2d/isometric_light/cubio/norm-bl-0015.png


二进制
2d/isometric_light/cubio/norm-bl-0016.png


部分文件因为文件数量过多而无法显示