Преглед на файлове

changing bullet sprite, work done onn directon sync

galo преди 1 година
родител
ревизия
3c52e9e388

+ 3 - 0
.import/minibullet.png-2e8df8274e385e86078b4807e154fcf2.md5

@@ -0,0 +1,3 @@
+source_md5="c96cce173e2d2dd84fc6a3f989c5a051"
+dest_md5="662d1053fc554e4cc1b7d06cb549ef8f"
+

BIN
.import/minibullet.png-2e8df8274e385e86078b4807e154fcf2.stex


+ 5 - 3
Client.gd

@@ -144,7 +144,7 @@ remote func projectiles_sync(arg):
 	argbuffer = posbuffer
 	posbuffer = []
 	var sprite = []
-	for i in range(0,arg.size(),5):
+	for i in range(0,arg.size(),6):
 		var aux =  Vector2( reconstruct_int16([ arg[i] , arg[i+1]]), reconstruct_int16([ arg[i+2] , arg[i+3]]) )
 		posbuffer.append(aux)
 		sprite.append(arg[i+4])
@@ -164,15 +164,17 @@ remote func enemies_position_2(arg):
 	argbuffer = posbuffer
 	posbuffer = []
 	var sprite = []
-	for i in range(0,arg.size(),5):
+	var side = []
+	for i in range(0,arg.size(),6):
 		var aux =  Vector2( reconstruct_int16([ arg[i] , arg[i+1]]), reconstruct_int16([ arg[i+2] , arg[i+3]]) )
 		posbuffer.append(aux)
 		sprite.append(arg[i+4])
+		side.append(arg[i+5])
 	
 	for i in posbuffer.size():
 		var node = $enemies.get_child(i)
 		node.show()
-		node.scale.x = -1 if node.global_position > posbuffer[i] else 1
+		node.scale.x = 1 if side[i] else -1
 		node.global_position = posbuffer[i]
 	
 	for i in sprite.size():

+ 17 - 10
Enemy.gd

@@ -1,7 +1,7 @@
 extends KinematicBody2D
 
 export var vida = 2
-export var speed = 70
+onready var speed = rand_range(70,80)
 export var type = 1
 
 func damage(arg, id):
@@ -18,19 +18,26 @@ var dir_buffer = 0
 
 var tick = 0
 export var tickrate = 4
+var state = 'runaround'
+var fliph = false
 
 func _physics_process(delta):
 	tick += 1
-	type = 0 if motion.x == 0 else 1
 	if fmod(tick,tickrate) == 0:
-		if target == null: _ready()
-		if target == null: return
-		dir_buffer += 1
-		if fmod(dir_buffer,reaction_time) == 0:
-			if is_instance_valid(target): motion.x = (target.global_position - global_position).normalized().x * speed
-		motion.y += 15
-		if motion.y > 0 and is_on_floor(): motion.y = 0
-		move_and_slide(motion*tickrate,Vector2.UP)
+		match state:
+			'runaround':
+				type = 0 if motion.x == 0 else 1
+				fliph = motion.x > 0 and motion.x != 0
+				if target == null: _ready()
+				if target == null: return
+				dir_buffer += 1
+				if fmod(dir_buffer,reaction_time) == 0:
+					if is_instance_valid(target): motion.x = (target.global_position - global_position).normalized().x * speed
+				motion.y += 15
+				if motion.y > 0 and is_on_floor(): motion.y = 0
+				move_and_slide(motion*tickrate,Vector2.UP)
+			'shooting':
+					type = 2
 
 func _on_Area2D_body_entered(body):
 	print(body)

+ 18 - 1
Enemy.tscn

@@ -1,7 +1,11 @@
-[gd_scene load_steps=5 format=2]
+[gd_scene load_steps=7 format=2]
 
 [ext_resource path="res://Enemy.gd" type="Script" id=1]
 [ext_resource path="res://damage_enemy.tscn" type="PackedScene" id=2]
+[ext_resource path="res://enemiplayerdetect.gd" type="Script" id=3]
+
+[sub_resource type="RectangleShape2D" id=3]
+extents = Vector2( 120, 10 )
 
 [sub_resource type="RectangleShape2D" id=1]
 
@@ -18,6 +22,16 @@ tickrate = 3
 monitorable = false
 damage = -10
 
+[node name="CollisionShape2D" parent="damage_enemy" index="0"]
+disabled = true
+
+[node name="damage_enemy2" parent="." instance=ExtResource( 2 )]
+monitorable = false
+script = ExtResource( 3 )
+
+[node name="CollisionShape2D" parent="damage_enemy2" index="0"]
+shape = SubResource( 3 )
+
 [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
 shape = SubResource( 1 )
 
@@ -29,6 +43,9 @@ collision_mask = 2
 visible = false
 shape = SubResource( 2 )
 
+[connection signal="body_entered" from="damage_enemy2" to="damage_enemy2" method="_on_damage_enemy2_body_entered"]
+[connection signal="body_exited" from="damage_enemy2" to="damage_enemy2" method="_on_damage_enemy2_body_exited"]
 [connection signal="body_entered" from="Area2D" to="." method="_on_Area2D_body_entered"]
 
 [editable path="damage_enemy"]
+[editable path="damage_enemy2"]

+ 33 - 12
NPC/soldier/soldieranim.tscn

@@ -1,4 +1,4 @@
-[gd_scene load_steps=59 format=2]
+[gd_scene load_steps=61 format=2]
 
 [ext_resource path="res://Art/NPC/soldier/head2.png" type="Texture" id=1]
 [ext_resource path="res://Art/NPC/soldier/helmet.png" type="Texture" id=2]
@@ -14301,7 +14301,7 @@ tracks/56/path = NodePath("body:position")
 tracks/56/interp = 1
 tracks/56/loop_wrap = true
 tracks/56/imported = false
-tracks/56/enabled = true
+tracks/56/enabled = false
 tracks/56/keys = {
 "times": PoolRealArray( 0.4 ),
 "transitions": PoolRealArray( 1 ),
@@ -16665,7 +16665,7 @@ tracks/56/path = NodePath("body:position")
 tracks/56/interp = 1
 tracks/56/loop_wrap = true
 tracks/56/imported = false
-tracks/56/enabled = true
+tracks/56/enabled = false
 tracks/56/keys = {
 "times": PoolRealArray( 0 ),
 "transitions": PoolRealArray( 1 ),
@@ -19259,6 +19259,7 @@ tracks/68/keys = {
 
 [sub_resource type="Animation" id=26]
 length = 0.5
+loop = true
 tracks/0/type = "value"
 tracks/0/path = NodePath("body/arm2/forearm/hand:scale")
 tracks/0/interp = 1
@@ -19936,7 +19937,7 @@ tracks/56/path = NodePath("body:position")
 tracks/56/interp = 1
 tracks/56/loop_wrap = true
 tracks/56/imported = false
-tracks/56/enabled = true
+tracks/56/enabled = false
 tracks/56/keys = {
 "times": PoolRealArray( 0 ),
 "transitions": PoolRealArray( 1 ),
@@ -20016,6 +20017,9 @@ tracks/62/keys = {
 "values": [ 15 ]
 }
 
+[sub_resource type="Animation" id=40]
+resource_name = "shootseq"
+
 [sub_resource type="Animation" id=27]
 length = 2.0
 loop = true
@@ -27332,6 +27336,21 @@ tracks/1/keys = {
 "values": [ 0.0, 1.0 ]
 }
 
+[sub_resource type="Animation" id=41]
+resource_name = "shoot"
+length = 2.5
+loop = true
+tracks/0/type = "animation"
+tracks/0/path = NodePath("AnimationPlayer")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/keys = {
+"clips": PoolStringArray( "prepareshot", "shoot", "reloadgun" ),
+"times": PoolRealArray( 0, 0.5, 1 )
+}
+
 [node name="SoldierAnim" type="Node2D"]
 script = ExtResource( 19 )
 array_nodes = [ "body", "body/head/Sprite2", "body/head/soldieremotions", "body/head/Sprite3" ]
@@ -27341,7 +27360,6 @@ text3 = ExtResource( 18 )
 text4 = ExtResource( 15 )
 
 [node name="AnimationPlayer" type="AnimationPlayer" parent="."]
-autoplay = "idle"
 anims/RESET = SubResource( 39 )
 anims/aim = SubResource( 1 )
 anims/alert = SubResource( 2 )
@@ -27369,6 +27387,7 @@ anims/rotate = SubResource( 23 )
 anims/rotate2 = SubResource( 24 )
 anims/runaway = SubResource( 25 )
 anims/shoot = SubResource( 26 )
+anims/shootseq = SubResource( 40 )
 anims/sleep = SubResource( 27 )
 anims/stab = SubResource( 28 )
 anims/stab2 = SubResource( 29 )
@@ -27403,6 +27422,7 @@ region_rect = Rect2( 28.5615, 66.124, 16.7204, 19.779 )
 position = Vector2( -3.23602, 12.4778 )
 
 [node name="Sprite2" type="Sprite" parent="body/head"]
+visible = false
 position = Vector2( 1, 0 )
 texture = ExtResource( 1 )
 offset = Vector2( 0, -7 )
@@ -27436,13 +27456,13 @@ text2 = ExtResource( 15 )
 
 [node name="medal" type="Sprite" parent="body"]
 position = Vector2( 1.05112, 19.9713 )
-z_index = 1
+z_index = 3
 texture = ExtResource( 5 )
 region_enabled = true
 region_rect = Rect2( 126.614, 74.6779, 5.20671, 6.94229 )
 
 [node name="belt" type="Sprite" parent="body"]
-position = Vector2( -3, 24 )
+position = Vector2( -2.57571, 23.7251 )
 z_index = 1
 texture = ExtResource( 5 )
 region_enabled = true
@@ -27458,7 +27478,7 @@ region_enabled = true
 region_rect = Rect2( 116.939, 29.9277, 18.1202, 9.5099 )
 
 [node name="leg" type="Sprite" parent="body"]
-position = Vector2( -7, 30 )
+position = Vector2( -6.66533, 30 )
 z_index = -3
 texture = ExtResource( 5 )
 offset = Vector2( 0, 5 )
@@ -27466,7 +27486,7 @@ region_enabled = true
 region_rect = Rect2( 82, 34, 7, 13 )
 
 [node name="feet" type="Sprite" parent="body/leg"]
-position = Vector2( 0, 12 )
+position = Vector2( -0.696178, 11.486 )
 texture = ExtResource( 5 )
 region_enabled = true
 region_rect = Rect2( 7, 45, 6, 10 )
@@ -27480,7 +27500,7 @@ region_enabled = true
 region_rect = Rect2( 82, 34, 7, 13 )
 
 [node name="feet" type="Sprite" parent="body/leg2"]
-position = Vector2( 0, 11 )
+position = Vector2( -0.696178, 11.4781 )
 texture = ExtResource( 5 )
 region_enabled = true
 region_rect = Rect2( 7, 44, 6, 10 )
@@ -27503,7 +27523,6 @@ region_rect = Rect2( 4.98756, 125.181, 5.78305, 4.11239 )
 
 [node name="forearm" type="Sprite" parent="body/arm"]
 position = Vector2( -1.94454, 7.29204 )
-rotation = -0.166435
 texture = ExtResource( 5 )
 offset = Vector2( 2.51907, 2.87262 )
 region_enabled = true
@@ -27511,7 +27530,6 @@ region_rect = Rect2( 76.8466, 81.4215, 10.1525, 6.2971 )
 
 [node name="hand" type="Sprite" parent="body/arm/forearm"]
 position = Vector2( 4.42659, 3.85746 )
-rotation = 0.169022
 texture = ExtResource( 5 )
 offset = Vector2( 1.62801, 0.0316229 )
 region_enabled = true
@@ -27623,3 +27641,6 @@ texture = ExtResource( 12 )
 
 [node name="AnimationPlayer" type="AnimationPlayer" parent="siren"]
 "anims/Nova Animação" = SubResource( 38 )
+
+[node name="AnimationPlayer2" type="AnimationPlayer" parent="."]
+anims/shoot = SubResource( 41 )

+ 2 - 1
NPC/soldier/soldierskinmanager.gd

@@ -7,9 +7,10 @@ export(Texture) var text3
 export(Texture) var text4
 export(Texture) var text5
 export var anim = 'idle'
+export var animnode = 'AnimationPlayer'
 
 func _ready():
-	$AnimationPlayer.play(anim)
+	get_node(animnode).play(anim)
 	for i in array_nodes.size():
 		get_node(array_nodes[i]).text2 = self['text'+str(i+1)]
 		get_node(array_nodes[i])._change()

+ 1 - 0
Server.gd

@@ -161,6 +161,7 @@ func synnc(arg,arg1):
 		projectile_datachunk.append_array( return_int16(pos.y) )
 		var bytetest : PoolByteArray
 		bytetest.append(i.type)
+		bytetest.append(i.fliph)
 		projectile_datachunk.append_array( bytetest )
 	rpc_unreliable_id(0, arg1, projectile_datachunk)
 

BIN
art/minibullet.png


+ 35 - 0
art/minibullet.png.import

@@ -0,0 +1,35 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/minibullet.png-2e8df8274e385e86078b4807e154fcf2.stex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://art/minibullet.png"
+dest_files=[ "res://.import/minibullet.png-2e8df8274e385e86078b4807e154fcf2.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/bptc_ldr=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=false
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+process/invert_color=false
+process/normal_map_invert_y=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

+ 1 - 0
bullet.gd

@@ -3,6 +3,7 @@ extends KinematicBody2D
 var motion = Vector2.ZERO
 var type = 4
 var id = ''
+var fliph = false
 
 #func _ready():
 #	print('bullet gen...')

+ 12 - 0
enemiplayerdetect.gd

@@ -0,0 +1,12 @@
+extends Area2D
+
+func _on_damage_enemy2_body_entered(body):
+	get_parent().state = 'shooting'
+	pass # Replace with function body.
+
+func _on_damage_enemy2_body_exited(body):
+	get_parent().state = 'runaround'
+	pass # Replace with function body.
+
+func _ready():
+	scale.x = rand_range(0.5,2.0)

+ 32 - 12
main.tscn

@@ -1,4 +1,4 @@
-[gd_scene load_steps=29 format=2]
+[gd_scene load_steps=31 format=2]
 
 [ext_resource path="res://Login.gd" type="Script" id=1]
 [ext_resource path="res://envarg.gd" type="Script" id=2]
@@ -8,7 +8,7 @@
 [ext_resource path="res://loginnetcode.gd" type="Script" id=6]
 [ext_resource path="res://BrowseColumn.tscn" type="PackedScene" id=7]
 [ext_resource path="res://tiles/tile32bc.tres" type="TileSet" id=8]
-[ext_resource path="res://icon.png" type="Texture" id=9]
+[ext_resource path="res://art/minibullet.png" type="Texture" id=9]
 [ext_resource path="res://art/Untitledcxz.png" type="Texture" id=10]
 [ext_resource path="res://Textures.gd" type="Script" id=11]
 [ext_resource path="res://Levelselect.gd" type="Script" id=12]
@@ -42,6 +42,28 @@ animations = [ {
 "speed": 5.0
 } ]
 
+[sub_resource type="Shader" id=12]
+code = "// NOTE: Shader automatically converted from Godot Engine 3.4.4.stable's CanvasItemMaterial.
+
+shader_type canvas_item;
+render_mode blend_mix;
+
+uniform vec4 color1 : hint_color;
+uniform vec4 color2 : hint_color;
+
+void fragment(){
+	if ( sin(TIME*15f) > 0f ){
+		COLOR = texture(TEXTURE,UV) * color1;
+	}else{
+		COLOR = texture(TEXTURE,UV) * color2;
+	}
+}"
+
+[sub_resource type="ShaderMaterial" id=13]
+shader = SubResource( 12 )
+shader_param/color1 = Color( 0, 0.835294, 1, 1 )
+shader_param/color2 = Color( 1, 0.678431, 0, 1 )
+
 [sub_resource type="Shader" id=10]
 code = "// NOTE: Shader automatically converted from Godot Engine 3.4.4.stable's CanvasItemMaterial.
 
@@ -123,13 +145,10 @@ own_world = true
 transparent_bg = true
 render_target_v_flip = true
 
-[node name="Goblin" type="AnimatedSprite" parent="Textures/Goblin3"]
-modulate = Color( 1, 0, 0, 1 )
-frames = SubResource( 5 )
-frame = 2
-speed_scale = 1.2
-playing = true
-offset = Vector2( 32, 32 )
+[node name="SoldierAnim3" parent="Textures/Goblin3" instance=ExtResource( 17 )]
+position = Vector2( 32, 12 )
+anim = "shoot"
+animnode = "AnimationPlayer2"
 
 [node name="Goblin4" type="Viewport" parent="Textures"]
 size = Vector2( 64, 64 )
@@ -140,19 +159,21 @@ render_target_v_flip = true
 [node name="Goblin" type="AnimatedSprite" parent="Textures/Goblin4"]
 modulate = Color( 1, 0, 0.984314, 1 )
 frames = SubResource( 5 )
-frame = 3
+frame = 1
 speed_scale = 0.9
 playing = true
 offset = Vector2( 32, 32 )
 
 [node name="Bullet" type="Viewport" parent="Textures"]
-size = Vector2( 8, 8 )
+size = Vector2( 9, 9 )
 own_world = true
 transparent_bg = true
 render_target_v_flip = true
 
 [node name="Sprite" type="Sprite" parent="Textures/Bullet"]
+material = SubResource( 13 )
 texture = ExtResource( 9 )
+centered = false
 
 [node name="PostgreSQL" type="Node" parent="."]
 script = ExtResource( 3 )
@@ -509,7 +530,6 @@ position = Vector2( 4100.22, 137.361 )
 [node name="Enemy21" parent="Levelselect/test/enemies" instance=ExtResource( 13 )]
 position = Vector2( 4729.64, 269.902 )
 vida = 100
-speed = 200
 
 [node name="testclient" type="Node2D" parent="Levelselect"]
 visible = false