Browse Source

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

BIN
2d/isometric_light/character_shder.res


BIN
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
+
+

BIN
2d/isometric_light/cubio.scn


BIN
2d/isometric_light/cubio/idle0001.png


BIN
2d/isometric_light/cubio/idle0002.png


BIN
2d/isometric_light/cubio/idle0003.png


BIN
2d/isometric_light/cubio/idle0004.png


BIN
2d/isometric_light/cubio/idle0005.png


BIN
2d/isometric_light/cubio/idle0006.png


BIN
2d/isometric_light/cubio/idle0007.png


BIN
2d/isometric_light/cubio/idle0008.png


BIN
2d/isometric_light/cubio/idle0009.png


BIN
2d/isometric_light/cubio/idle0010.png


BIN
2d/isometric_light/cubio/idle0011.png


BIN
2d/isometric_light/cubio/idle0012.png


BIN
2d/isometric_light/cubio/idle0013.png


BIN
2d/isometric_light/cubio/idle0014.png


BIN
2d/isometric_light/cubio/idle0015.png


BIN
2d/isometric_light/cubio/idle0016.png


BIN
2d/isometric_light/cubio/idle0017.png


BIN
2d/isometric_light/cubio/idle0018.png


BIN
2d/isometric_light/cubio/idle0019.png


BIN
2d/isometric_light/cubio/idle0020.png


BIN
2d/isometric_light/cubio/idle0021.png


BIN
2d/isometric_light/cubio/idle0022.png


BIN
2d/isometric_light/cubio/idle0023.png


BIN
2d/isometric_light/cubio/idle0024.png


BIN
2d/isometric_light/cubio/idle0025.png


BIN
2d/isometric_light/cubio/idle0026.png


BIN
2d/isometric_light/cubio/idle0027.png


BIN
2d/isometric_light/cubio/idle0028.png


BIN
2d/isometric_light/cubio/idle0029.png


BIN
2d/isometric_light/cubio/idle0030.png


BIN
2d/isometric_light/cubio/idle0031.png


BIN
2d/isometric_light/cubio/idle0032.png


BIN
2d/isometric_light/cubio/idle0033.png


BIN
2d/isometric_light/cubio/idle0034.png


BIN
2d/isometric_light/cubio/idle0035.png


BIN
2d/isometric_light/cubio/idle0036.png


BIN
2d/isometric_light/cubio/idle0037.png


BIN
2d/isometric_light/cubio/idle0038.png


BIN
2d/isometric_light/cubio/idle0039.png


BIN
2d/isometric_light/cubio/idle0040.png


BIN
2d/isometric_light/cubio/idle0041.png


BIN
2d/isometric_light/cubio/idle0042.png


BIN
2d/isometric_light/cubio/idle0043.png


BIN
2d/isometric_light/cubio/idle0044.png


BIN
2d/isometric_light/cubio/idle0045.png


BIN
2d/isometric_light/cubio/idle0046.png


BIN
2d/isometric_light/cubio/idle0047.png


BIN
2d/isometric_light/cubio/idle0048.png


BIN
2d/isometric_light/cubio/idle0049.png


BIN
2d/isometric_light/cubio/idle0050.png


BIN
2d/isometric_light/cubio/idle0051.png


BIN
2d/isometric_light/cubio/idle0052.png


BIN
2d/isometric_light/cubio/idle0053.png


BIN
2d/isometric_light/cubio/idle0054.png


BIN
2d/isometric_light/cubio/idle0055.png


BIN
2d/isometric_light/cubio/idle0056.png


BIN
2d/isometric_light/cubio/idle0057.png


BIN
2d/isometric_light/cubio/idle0058.png


BIN
2d/isometric_light/cubio/idle0059.png


BIN
2d/isometric_light/cubio/idle0060.png


BIN
2d/isometric_light/cubio/norm-b-0001.png


BIN
2d/isometric_light/cubio/norm-b-0002.png


BIN
2d/isometric_light/cubio/norm-b-0003.png


BIN
2d/isometric_light/cubio/norm-b-0004.png


BIN
2d/isometric_light/cubio/norm-b-0005.png


BIN
2d/isometric_light/cubio/norm-b-0006.png


BIN
2d/isometric_light/cubio/norm-b-0007.png


BIN
2d/isometric_light/cubio/norm-b-0008.png


BIN
2d/isometric_light/cubio/norm-b-0009.png


BIN
2d/isometric_light/cubio/norm-b-0010.png


BIN
2d/isometric_light/cubio/norm-b-0011.png


BIN
2d/isometric_light/cubio/norm-b-0012.png


BIN
2d/isometric_light/cubio/norm-b-0013.png


BIN
2d/isometric_light/cubio/norm-b-0014.png


BIN
2d/isometric_light/cubio/norm-b-0015.png


BIN
2d/isometric_light/cubio/norm-b-0016.png


BIN
2d/isometric_light/cubio/norm-b-0017.png


BIN
2d/isometric_light/cubio/norm-b-0018.png


BIN
2d/isometric_light/cubio/norm-b-0019.png


BIN
2d/isometric_light/cubio/norm-b-0020.png


BIN
2d/isometric_light/cubio/norm-bl-0001.png


BIN
2d/isometric_light/cubio/norm-bl-0002.png


BIN
2d/isometric_light/cubio/norm-bl-0003.png


BIN
2d/isometric_light/cubio/norm-bl-0004.png


BIN
2d/isometric_light/cubio/norm-bl-0005.png


BIN
2d/isometric_light/cubio/norm-bl-0006.png


BIN
2d/isometric_light/cubio/norm-bl-0007.png


BIN
2d/isometric_light/cubio/norm-bl-0008.png


BIN
2d/isometric_light/cubio/norm-bl-0009.png


BIN
2d/isometric_light/cubio/norm-bl-0010.png


BIN
2d/isometric_light/cubio/norm-bl-0011.png


BIN
2d/isometric_light/cubio/norm-bl-0012.png


BIN
2d/isometric_light/cubio/norm-bl-0013.png


BIN
2d/isometric_light/cubio/norm-bl-0014.png


BIN
2d/isometric_light/cubio/norm-bl-0015.png


BIN
2d/isometric_light/cubio/norm-bl-0016.png


Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác