Răsfoiți Sursa

back buffer copy node, to improve on texscreen()

back buffer copy node and respective demo
Juan Linietsky 10 ani în urmă
părinte
comite
1e019fc725

+ 4 - 0
2d/isometric_light/engine.cfg

@@ -9,6 +9,10 @@ down=[key(S), key(Down)]
 left=[key(Left), key(A)]
 right=[key(Right), key(D)]
 
+[rasterizer]
+
+shadow_filter=0
+
 [render]
 
 default_clear_color=#ff000000

BIN
2d/sprite_shaders/sprite_shaders.scn


BIN
2d/texscreen/bubble.png


+ 17 - 0
2d/texscreen/bubbles.gd

@@ -0,0 +1,17 @@
+
+extends Control
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+
+const MAX_BUBBLES=10
+
+func _ready():
+	# Initialization here
+	for i in range(MAX_BUBBLES):
+		var bubble = preload("res://lens.scn").instance()
+		add_child(bubble)
+	pass
+
+

BIN
2d/texscreen/bubbles.scn


BIN
2d/texscreen/burano.png


+ 4 - 0
2d/texscreen/engine.cfg

@@ -0,0 +1,4 @@
+[application]
+
+name="Glass Bubbles (Texscreen)"
+main_scene="res://bubbles.scn"

+ 37 - 0
2d/texscreen/lens.gd

@@ -0,0 +1,37 @@
+
+extends BackBufferCopy
+
+# member variables here, example:
+# var a=2
+# var b="textvar"
+const MOTION_SPEED=150
+
+var vsize;
+var dir;
+
+func _process(delta):
+	var pos = get_pos() + dir * delta * MOTION_SPEED
+	
+	if (pos.x<0):
+		dir.x=abs(dir.x)
+	elif (pos.x>vsize.x):
+		dir.x=-abs(dir.x)
+
+	if (pos.y<0):
+		dir.y=abs(dir.y)
+	elif (pos.y>vsize.y):
+		dir.y=-abs(dir.y)
+		
+	set_pos(pos)
+
+func _ready():
+	vsize = get_viewport_rect().size
+	var pos = vsize * Vector2(randf(),randf());
+	set_pos(pos);
+	dir = Vector2(randf()*2.0-1,randf()*2.0-1).normalized()
+	set_process(true)
+	
+	# Initialization here
+	pass
+
+

BIN
2d/texscreen/lens.scn