Jelajahi Sumber

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 tahun lalu
induk
melakukan
09489e3a78
100 mengubah file dengan 100 tambahan dan 0 penghapusan
  1. 4 0
      LICENSE.md
  2. TEMPAT SAMPAH
      demos/2d/isometric_light/character_shder.res
  3. TEMPAT SAMPAH
      demos/2d/isometric_light/column.scn
  4. 96 0
      demos/2d/isometric_light/cubio.gd
  5. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio.scn
  6. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0001.png
  7. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0002.png
  8. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0003.png
  9. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0004.png
  10. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0005.png
  11. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0006.png
  12. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0007.png
  13. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0008.png
  14. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0009.png
  15. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0010.png
  16. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0011.png
  17. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0012.png
  18. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0013.png
  19. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0014.png
  20. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0015.png
  21. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0016.png
  22. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0017.png
  23. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0018.png
  24. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0019.png
  25. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0020.png
  26. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0021.png
  27. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0022.png
  28. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0023.png
  29. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0024.png
  30. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0025.png
  31. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0026.png
  32. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0027.png
  33. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0028.png
  34. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0029.png
  35. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0030.png
  36. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0031.png
  37. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0032.png
  38. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0033.png
  39. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0034.png
  40. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0035.png
  41. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0036.png
  42. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0037.png
  43. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0038.png
  44. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0039.png
  45. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0040.png
  46. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0041.png
  47. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0042.png
  48. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0043.png
  49. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0044.png
  50. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0045.png
  51. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0046.png
  52. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0047.png
  53. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0048.png
  54. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0049.png
  55. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0050.png
  56. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0051.png
  57. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0052.png
  58. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0053.png
  59. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0054.png
  60. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0055.png
  61. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0056.png
  62. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0057.png
  63. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0058.png
  64. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0059.png
  65. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/idle0060.png
  66. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0001.png
  67. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0002.png
  68. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0003.png
  69. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0004.png
  70. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0005.png
  71. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0006.png
  72. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0007.png
  73. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0008.png
  74. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0009.png
  75. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0010.png
  76. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0011.png
  77. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0012.png
  78. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0013.png
  79. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0014.png
  80. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0015.png
  81. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0016.png
  82. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0017.png
  83. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0018.png
  84. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0019.png
  85. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-b-0020.png
  86. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-bl-0001.png
  87. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-bl-0002.png
  88. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-bl-0003.png
  89. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-bl-0004.png
  90. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-bl-0005.png
  91. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-bl-0006.png
  92. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-bl-0007.png
  93. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-bl-0008.png
  94. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-bl-0009.png
  95. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-bl-0010.png
  96. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-bl-0011.png
  97. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-bl-0012.png
  98. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-bl-0013.png
  99. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-bl-0014.png
  100. TEMPAT SAMPAH
      demos/2d/isometric_light/cubio/norm-bl-0015.png

+ 4 - 0
LICENSE.md

@@ -21,3 +21,7 @@
  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  
  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     
  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                
+
+
+**********************************************************************
+

TEMPAT SAMPAH
demos/2d/isometric_light/character_shder.res


TEMPAT SAMPAH
demos/2d/isometric_light/column.scn


+ 96 - 0
demos/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
+
+

TEMPAT SAMPAH
demos/2d/isometric_light/cubio.scn


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0001.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0002.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0003.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0004.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0005.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0006.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0007.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0008.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0009.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0010.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0011.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0012.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0013.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0014.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0015.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0016.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0017.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0018.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0019.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0020.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0021.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0022.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0023.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0024.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0025.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0026.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0027.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0028.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0029.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0030.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0031.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0032.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0033.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0034.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0035.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0036.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0037.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0038.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0039.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0040.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0041.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0042.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0043.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0044.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0045.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0046.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0047.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0048.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0049.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0050.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0051.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0052.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0053.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0054.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0055.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0056.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0057.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0058.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0059.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/idle0060.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0001.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0002.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0003.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0004.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0005.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0006.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0007.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0008.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0009.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0010.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0011.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0012.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0013.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0014.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0015.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0016.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0017.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0018.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0019.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-b-0020.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-bl-0001.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-bl-0002.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-bl-0003.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-bl-0004.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-bl-0005.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-bl-0006.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-bl-0007.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-bl-0008.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-bl-0009.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-bl-0010.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-bl-0011.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-bl-0012.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-bl-0013.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-bl-0014.png


TEMPAT SAMPAH
demos/2d/isometric_light/cubio/norm-bl-0015.png


Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini