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 years ago
parent
commit
6745cb4078
100 changed files with 96 additions and 0 deletions
  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


Some files were not shown because too many files changed in this diff