galo преди 2 години
родител
ревизия
716a4daf7a
променени са 5 файла, в които са добавени 147 реда и са изтрити 0 реда
  1. 47 0
      Threader.gd
  2. 17 0
      Threader.tscn
  3. 24 0
      Threader2.tscn
  4. 53 0
      mainscene.gd
  5. 6 0
      mainscene.tscn

+ 47 - 0
Threader.gd

@@ -0,0 +1,47 @@
+extends KinematicBody2D
+
+var add = 10
+var thread = Thread.new()
+export(Texture) var texlight
+var speed = Vector2(10,10)
+var GDnativeClass = preload("res://bin/gdexample.gdns").new()
+var data = {'pos':Vector2(0,0),'name':'123'}
+
+func _bg_load(path):
+	lightpos()
+	call_deferred("_bg_load_done")
+
+func _bg_load_done():
+	var tex = thread.wait_to_finish()
+
+func _process(delta):
+	move_and_slide(speed)
+	lightpos()
+#	print(GDnativeClass.Area_of_interest(position,get_parent().children,600))
+#	_on_load_pressed()
+
+func _on_load_pressed():
+	if (thread.is_active()):
+		return
+	thread.start(self, "_bg_load")
+
+var tilesize = 256
+
+func lightpos():
+	var x = int(position.x/tilesize)+32
+	var y = int(position.y/tilesize)+32
+#	var data = GDnativeClass.Area_of_interest(position,get_parent().blockmap[x][y],300)
+#	var data = []
+#	for i in get_parent().get_children():
+#		if global_position.distance_to(i.global_position) > 600:
+#			data.append(i.global_position)
+#	get_parent()._data(data)
+	get_parent()._data_blockmap(get_parent().blockmap[x][y])
+	return 
+
+func _ready():
+#	print('Thread Started')
+	randomize()
+	var r = rand_range(0,600)
+	var r1 = rand_range(0,1000)
+	global_position = Vector2(r1,r)

+ 17 - 0
Threader.tscn

@@ -0,0 +1,17 @@
+[gd_scene load_steps=4 format=2]
+
+[ext_resource path="res://Threader.gd" type="Script" id=1]
+[ext_resource path="res://icon.png" type="Texture" id=2]
+
+[sub_resource type="RectangleShape2D" id=1]
+extents = Vector2( 32, 32 )
+
+[node name="Threader" type="KinematicBody2D"]
+collision_layer = 0
+script = ExtResource( 1 )
+
+[node name="Sprite" type="Sprite" parent="."]
+texture = ExtResource( 2 )
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
+shape = SubResource( 1 )

+ 24 - 0
Threader2.tscn

@@ -0,0 +1,24 @@
+[gd_scene load_steps=5 format=2]
+
+[ext_resource path="res://Threader.gd" type="Script" id=1]
+[ext_resource path="res://icon.png" type="Texture" id=2]
+
+[sub_resource type="RectangleShape2D" id=1]
+extents = Vector2( 500, 300 )
+
+[sub_resource type="RectangleShape2D" id=2]
+extents = Vector2( 32, 32 )
+
+[node name="Threader" type="KinematicBody2D"]
+script = ExtResource( 1 )
+
+[node name="Sprite" type="Sprite" parent="."]
+texture = ExtResource( 2 )
+
+[node name="Area2D" type="Area2D" parent="."]
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
+shape = SubResource( 1 )
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
+shape = SubResource( 2 )

+ 53 - 0
mainscene.gd

@@ -0,0 +1,53 @@
+extends Node2D
+
+onready var children = get_children()
+var blockmap = blockmapinitializer(64,64)
+
+func blockmapinitializer(x,y):
+	var arrayx = []
+	arrayx.resize(x)
+	for i in arrayx.size():
+		var arrayy = []
+		arrayy.resize(y)
+		for h in arrayy.size():
+			arrayy[h] = []
+		arrayx[i] = arrayy
+	return arrayx
+
+var tilesize = 256
+
+func _process(delta):
+	blockmap = blockmapinitializer(64,64)
+	for node in get_children():
+		var x = int(node.position.x/tilesize)+32
+		var y = int(node.position.y/tilesize)+32
+#		print(str(x) + '/' + str(y))
+		var data = {'pos':node.position, 'name':node.name}
+		blockmap[x][y].append(data)
+		blockmap[x+1][y].append(data)
+		blockmap[x-1][y].append(data)
+		blockmap[x][y+1].append(data)
+		blockmap[x][y-1].append(data)
+#	print(blockmap)
+
+func _ready():
+	Engine.set_target_fps(20)
+	for i in 1000:
+		add_child(load('res://Threader.tscn').instance())
+	children = get_children()
+#func _physics_process(delta):
+#	var array = get_children()
+#	for i in array:
+#		randomize()
+#		var r = rand_range(0,10)
+#		var r1 = rand_range(0,10)
+#		i.speed = Vector2(r1,r)
+
+func _data(data):
+#	print(data)
+#	print('')
+	pass
+
+func _data_blockmap(blockmapcel):
+#	print(blockmapcel)
+	pass

+ 6 - 0
mainscene.tscn

@@ -0,0 +1,6 @@
+[gd_scene load_steps=2 format=2]
+
+[ext_resource path="res://mainscene.gd" type="Script" id=1]
+
+[node name="Node2D" type="Node2D"]
+script = ExtResource( 1 )