among-eux

Game made in 1 day with flx
git clone git://git.vgx.fr/among-eux
Log | Files | Refs

Public.gd (1123B)


      1 extends RigidBody2D
      2 
      3 export var max_speed = 20.0
      4 export var force = 20.0
      5 
      6 var pnj_frames = [preload("res://PNJ1frames.tres"), preload("res://PNJ2frames.tres"), preload("res://PNJ3frames.tres")]
      7 
      8 var type = -1
      9 
     10 func init():
     11 	max_speed = rand_range(0, max_speed)
     12 	
     13 	if position == Vector2():
     14 		var vp_size = get_viewport_rect().size
     15 		position.x = rand_range(vp_size.x/5, vp_size.x-30.0)
     16 		position.y = rand_range(30.0, vp_size.y-30.0)
     17 	
     18 	if type == -1:
     19 		type = randi()%3
     20 	
     21 	$Sprite.frames = pnj_frames[type]
     22 
     23 func _ready():
     24 	init()
     25 
     26 func _process(_delta):
     27 	$Sprite.rotation = -rotation
     28 	
     29 	var direction = int(rad2deg(linear_velocity.angle())+360+45)%360/90
     30 	if direction == 0:
     31 		$Sprite.animation = "right"
     32 	elif direction == 1:
     33 		$Sprite.animation = "down"
     34 	elif direction == 2:
     35 		$Sprite.animation = "left"
     36 	elif direction == 3:
     37 		$Sprite.animation = "up"
     38 
     39 func _integrate_forces(state):
     40 	#print_debug(state.linear_velocity.x)
     41 	var direction = get_node("../President").position - position
     42 	if state.linear_velocity.length() < max_speed:
     43 		applied_force = direction.normalized() * force
     44 	else:
     45 		applied_force = Vector2()