Pārlūkot izejas kodu

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

BIN
demos/2d/isometric_light/character_shder.res


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

BIN
demos/2d/isometric_light/cubio.scn


BIN
demos/2d/isometric_light/cubio/idle0001.png


BIN
demos/2d/isometric_light/cubio/idle0002.png


BIN
demos/2d/isometric_light/cubio/idle0003.png


BIN
demos/2d/isometric_light/cubio/idle0004.png


BIN
demos/2d/isometric_light/cubio/idle0005.png


BIN
demos/2d/isometric_light/cubio/idle0006.png


BIN
demos/2d/isometric_light/cubio/idle0007.png


BIN
demos/2d/isometric_light/cubio/idle0008.png


BIN
demos/2d/isometric_light/cubio/idle0009.png


BIN
demos/2d/isometric_light/cubio/idle0010.png


BIN
demos/2d/isometric_light/cubio/idle0011.png


BIN
demos/2d/isometric_light/cubio/idle0012.png


BIN
demos/2d/isometric_light/cubio/idle0013.png


BIN
demos/2d/isometric_light/cubio/idle0014.png


BIN
demos/2d/isometric_light/cubio/idle0015.png


BIN
demos/2d/isometric_light/cubio/idle0016.png


BIN
demos/2d/isometric_light/cubio/idle0017.png


BIN
demos/2d/isometric_light/cubio/idle0018.png


BIN
demos/2d/isometric_light/cubio/idle0019.png


BIN
demos/2d/isometric_light/cubio/idle0020.png


BIN
demos/2d/isometric_light/cubio/idle0021.png


BIN
demos/2d/isometric_light/cubio/idle0022.png


BIN
demos/2d/isometric_light/cubio/idle0023.png


BIN
demos/2d/isometric_light/cubio/idle0024.png


BIN
demos/2d/isometric_light/cubio/idle0025.png


BIN
demos/2d/isometric_light/cubio/idle0026.png


BIN
demos/2d/isometric_light/cubio/idle0027.png


BIN
demos/2d/isometric_light/cubio/idle0028.png


BIN
demos/2d/isometric_light/cubio/idle0029.png


BIN
demos/2d/isometric_light/cubio/idle0030.png


BIN
demos/2d/isometric_light/cubio/idle0031.png


BIN
demos/2d/isometric_light/cubio/idle0032.png


BIN
demos/2d/isometric_light/cubio/idle0033.png


BIN
demos/2d/isometric_light/cubio/idle0034.png


BIN
demos/2d/isometric_light/cubio/idle0035.png


BIN
demos/2d/isometric_light/cubio/idle0036.png


BIN
demos/2d/isometric_light/cubio/idle0037.png


BIN
demos/2d/isometric_light/cubio/idle0038.png


BIN
demos/2d/isometric_light/cubio/idle0039.png


BIN
demos/2d/isometric_light/cubio/idle0040.png


BIN
demos/2d/isometric_light/cubio/idle0041.png


BIN
demos/2d/isometric_light/cubio/idle0042.png


BIN
demos/2d/isometric_light/cubio/idle0043.png


BIN
demos/2d/isometric_light/cubio/idle0044.png


BIN
demos/2d/isometric_light/cubio/idle0045.png


BIN
demos/2d/isometric_light/cubio/idle0046.png


BIN
demos/2d/isometric_light/cubio/idle0047.png


BIN
demos/2d/isometric_light/cubio/idle0048.png


BIN
demos/2d/isometric_light/cubio/idle0049.png


BIN
demos/2d/isometric_light/cubio/idle0050.png


BIN
demos/2d/isometric_light/cubio/idle0051.png


BIN
demos/2d/isometric_light/cubio/idle0052.png


BIN
demos/2d/isometric_light/cubio/idle0053.png


BIN
demos/2d/isometric_light/cubio/idle0054.png


BIN
demos/2d/isometric_light/cubio/idle0055.png


BIN
demos/2d/isometric_light/cubio/idle0056.png


BIN
demos/2d/isometric_light/cubio/idle0057.png


BIN
demos/2d/isometric_light/cubio/idle0058.png


BIN
demos/2d/isometric_light/cubio/idle0059.png


BIN
demos/2d/isometric_light/cubio/idle0060.png


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels