Procházet zdrojové kódy

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


binární
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ární
demos/2d/isometric_light/cubio.scn


binární
demos/2d/isometric_light/cubio/idle0001.png


binární
demos/2d/isometric_light/cubio/idle0002.png


binární
demos/2d/isometric_light/cubio/idle0003.png


binární
demos/2d/isometric_light/cubio/idle0004.png


binární
demos/2d/isometric_light/cubio/idle0005.png


binární
demos/2d/isometric_light/cubio/idle0006.png


binární
demos/2d/isometric_light/cubio/idle0007.png


binární
demos/2d/isometric_light/cubio/idle0008.png


binární
demos/2d/isometric_light/cubio/idle0009.png


binární
demos/2d/isometric_light/cubio/idle0010.png


binární
demos/2d/isometric_light/cubio/idle0011.png


binární
demos/2d/isometric_light/cubio/idle0012.png


binární
demos/2d/isometric_light/cubio/idle0013.png


binární
demos/2d/isometric_light/cubio/idle0014.png


binární
demos/2d/isometric_light/cubio/idle0015.png


binární
demos/2d/isometric_light/cubio/idle0016.png


binární
demos/2d/isometric_light/cubio/idle0017.png


binární
demos/2d/isometric_light/cubio/idle0018.png


binární
demos/2d/isometric_light/cubio/idle0019.png


binární
demos/2d/isometric_light/cubio/idle0020.png


binární
demos/2d/isometric_light/cubio/idle0021.png


binární
demos/2d/isometric_light/cubio/idle0022.png


binární
demos/2d/isometric_light/cubio/idle0023.png


binární
demos/2d/isometric_light/cubio/idle0024.png


binární
demos/2d/isometric_light/cubio/idle0025.png


binární
demos/2d/isometric_light/cubio/idle0026.png


binární
demos/2d/isometric_light/cubio/idle0027.png


binární
demos/2d/isometric_light/cubio/idle0028.png


binární
demos/2d/isometric_light/cubio/idle0029.png


binární
demos/2d/isometric_light/cubio/idle0030.png


binární
demos/2d/isometric_light/cubio/idle0031.png


binární
demos/2d/isometric_light/cubio/idle0032.png


binární
demos/2d/isometric_light/cubio/idle0033.png


binární
demos/2d/isometric_light/cubio/idle0034.png


binární
demos/2d/isometric_light/cubio/idle0035.png


binární
demos/2d/isometric_light/cubio/idle0036.png


binární
demos/2d/isometric_light/cubio/idle0037.png


binární
demos/2d/isometric_light/cubio/idle0038.png


binární
demos/2d/isometric_light/cubio/idle0039.png


binární
demos/2d/isometric_light/cubio/idle0040.png


binární
demos/2d/isometric_light/cubio/idle0041.png


binární
demos/2d/isometric_light/cubio/idle0042.png


binární
demos/2d/isometric_light/cubio/idle0043.png


binární
demos/2d/isometric_light/cubio/idle0044.png


binární
demos/2d/isometric_light/cubio/idle0045.png


binární
demos/2d/isometric_light/cubio/idle0046.png


binární
demos/2d/isometric_light/cubio/idle0047.png


binární
demos/2d/isometric_light/cubio/idle0048.png


binární
demos/2d/isometric_light/cubio/idle0049.png


binární
demos/2d/isometric_light/cubio/idle0050.png


binární
demos/2d/isometric_light/cubio/idle0051.png


binární
demos/2d/isometric_light/cubio/idle0052.png


binární
demos/2d/isometric_light/cubio/idle0053.png


binární
demos/2d/isometric_light/cubio/idle0054.png


binární
demos/2d/isometric_light/cubio/idle0055.png


binární
demos/2d/isometric_light/cubio/idle0056.png


binární
demos/2d/isometric_light/cubio/idle0057.png


binární
demos/2d/isometric_light/cubio/idle0058.png


binární
demos/2d/isometric_light/cubio/idle0059.png


binární
demos/2d/isometric_light/cubio/idle0060.png


binární
demos/2d/isometric_light/cubio/norm-b-0001.png


binární
demos/2d/isometric_light/cubio/norm-b-0002.png


binární
demos/2d/isometric_light/cubio/norm-b-0003.png


binární
demos/2d/isometric_light/cubio/norm-b-0004.png


binární
demos/2d/isometric_light/cubio/norm-b-0005.png


binární
demos/2d/isometric_light/cubio/norm-b-0006.png


binární
demos/2d/isometric_light/cubio/norm-b-0007.png


binární
demos/2d/isometric_light/cubio/norm-b-0008.png


binární
demos/2d/isometric_light/cubio/norm-b-0009.png


binární
demos/2d/isometric_light/cubio/norm-b-0010.png


binární
demos/2d/isometric_light/cubio/norm-b-0011.png


binární
demos/2d/isometric_light/cubio/norm-b-0012.png


binární
demos/2d/isometric_light/cubio/norm-b-0013.png


binární
demos/2d/isometric_light/cubio/norm-b-0014.png


binární
demos/2d/isometric_light/cubio/norm-b-0015.png


binární
demos/2d/isometric_light/cubio/norm-b-0016.png


binární
demos/2d/isometric_light/cubio/norm-b-0017.png


binární
demos/2d/isometric_light/cubio/norm-b-0018.png


binární
demos/2d/isometric_light/cubio/norm-b-0019.png


binární
demos/2d/isometric_light/cubio/norm-b-0020.png


binární
demos/2d/isometric_light/cubio/norm-bl-0001.png


binární
demos/2d/isometric_light/cubio/norm-bl-0002.png


binární
demos/2d/isometric_light/cubio/norm-bl-0003.png


binární
demos/2d/isometric_light/cubio/norm-bl-0004.png


binární
demos/2d/isometric_light/cubio/norm-bl-0005.png


binární
demos/2d/isometric_light/cubio/norm-bl-0006.png


binární
demos/2d/isometric_light/cubio/norm-bl-0007.png


binární
demos/2d/isometric_light/cubio/norm-bl-0008.png


binární
demos/2d/isometric_light/cubio/norm-bl-0009.png


binární
demos/2d/isometric_light/cubio/norm-bl-0010.png


binární
demos/2d/isometric_light/cubio/norm-bl-0011.png


binární
demos/2d/isometric_light/cubio/norm-bl-0012.png


binární
demos/2d/isometric_light/cubio/norm-bl-0013.png


binární
demos/2d/isometric_light/cubio/norm-bl-0014.png


binární
demos/2d/isometric_light/cubio/norm-bl-0015.png


Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů