public override void Initialize(Vector2 position, int size = 8) { base.Initialize(Position, size: size); SetCollisionMaskBit(1, true); CollisionLayer = 0; CollisionShape2D hurtCollider = new CollisionShape2D(); RectangleShape2D hurtBoxShape = new RectangleShape2D(); _hurtArea.SetCollisionLayerBit(0, false); _hurtArea.SetCollisionLayerBit(2, true); _hurtArea.SetCollisionMaskBit(19, true); _hurtArea.SetCollisionMaskBit(0, false); _hurtArea.Name = "HurtBox"; hurtBoxShape.Extents = new Vector2(size / 2f, size / 2f); hurtCollider.Shape = hurtBoxShape; _hurtArea.AddChild(hurtCollider); AddChild(_hurtArea); CollisionShape2D alertCollider = new CollisionShape2D(); CircleShape2D alertBoxShape = new CircleShape2D(); _alertArea.Name = "AlertCircle"; _alertArea.SetCollisionMaskBit(19, true); _alertArea.SetCollisionMaskBit(0, false); _alertArea.CollisionLayer = 0; alertBoxShape.Radius = 35; alertCollider.Shape = alertBoxShape; _alertArea.AddChild(alertCollider); AddChild(_alertArea); _alertArea.Connect("area_entered", this, "_OnPlayerEnter"); _hurtArea.Connect("area_entered", this, "_OnPlayerTouch"); AddToGroup("Enemies"); }
// Called when the node enters the scene tree for the first time. public override void _Ready() { base._Ready(); var circle = new CircleShape2D(); ((CollisionShape2D)GetNode("DetectRadius/CollisionShape2D")).Shape = circle; ((CircleShape2D)((CollisionShape2D)GetNode("DetectRadius/CollisionShape2D")).Shape).Radius = DetectRadius; }
private void AddCollider() { collisionShape = new CollisionShape2D(); CircleShape2D circleShape = new CircleShape2D(); circleShape.Radius = physics.Physicist.Size; collisionShape.Shape = circleShape; AddChild(collisionShape); }
public override void UpdateTransforms() { CircleShape2D targetCircle = _data.TargetCircle; CircleShape2D borderCircle = _data.BorderCircle; borderCircle.Center = targetCircle.Center; borderCircle.RotationDegrees = targetCircle.RotationDegrees; borderCircle.Radius = targetCircle.Radius; }
// Called when the node enters the scene tree for the first time. public override void _Ready() { lvl = (level)GetNode("/root/level"); velocity = new Vector2(velocity_x, velocity_y); collision_shape_2d = GetNode <CollisionShape2D>("collision_shape_2d"); CircleShape2D shape = new CircleShape2D(); shape.Radius = radius; collision_shape_2d.Shape = shape; }
private void UpdateDetectionRadius() { if (detectionShape == null) { return; } CircleShape2D shape = (CircleShape2D)detectionShape.Shape; shape.Radius = detectionRadius; }
public override void _Ready() { towerRange = GetNode("Detection Enemy").GetNode <CollisionShape2D>("Range").GetShape() as CircleShape2D; towerRange.Radius = range; GD.Print(towerRange.GetRadius(), " vs ", range); // shootTimer = rateOfFire; anim = FindNode("AnimationPlayer") as AnimationPlayer; anim.Play("idle"); }
private CollisionShape2D CreateReadiusArea(Vector2 position, int radius) { var area = new CollisionShape2D(); area.Position = position; var circle = new CircleShape2D(); circle.Radius = radius; area.Shape = circle; return(area); }
public override void _Ready() { _collisionShape = GetNode <CollisionShape2D>(collisionShapeNodePath); _explosionCollisionArea = GetNode <Area2D>(explosionCollisionAreaNodePath); _explosionCollisionArea.Connect("body_entered", this, nameof(HandleBodyEntered)); _explosionCollisionArea.Connect("body_exited", this, nameof(HandleBodyExited)); CircleShape2D collisionShape = (CircleShape2D)_collisionShape.GetShape(); collisionShape.SetRadius(explosionRadius); }
public override void _Ready() { _parent = GetParent(); GunTimer = (Timer)GetNode("Timer"); GunTimer.Start(); var circle = new CircleShape2D(); circle.Radius = DetectRadius; var radius = (CollisionShape2D)GetNode("DetectRadius/CollisionShape2D"); radius.Shape = circle; _enemyTurret = (Sprite)GetNode("Turret"); }
public override void _Ready() { var shape = new CircleShape2D() { Radius = Radius }; var collisionShape = new CollisionShape2D() { Shape = shape }; AddChild(collisionShape); }
// Ready public override void _Ready() { // Call base class _Ready first base._Ready(); _parent = GetParent() as PathFollow2D; // Set the detect radius CircleShape2D circle = new CircleShape2D(); circle.Radius = this.DetectRadius; GetNode <CollisionShape2D>("DetectRadius/CollisionShape2D").Shape = circle; }
public override void _Ready() { EnemyGunTimer = (Timer)GetNode("GunTimer"); EnemyGunTimer.WaitTime = GunCoolDown; Parent = GetParent(); EnemyTurret = (Sprite)GetNode("Turret"); var circle = new CircleShape2D(); circle.Radius = DetectRadius; var detectRadius = (CollisionShape2D)GetNode("DetectRadius/CollisionShape2D"); detectRadius.Shape = circle; }
public override void _Ready() { AreaOfInfluence = GetNode <Area2D>("AreaOfInfluence"); AreaOfInfluence.Connect("body_entered", this, "UpdateInfluence"); CollisionShape2D AoICollision = GetNode <CollisionShape2D>("AreaOfInfluence/CollisionShape2D"); CircleShape2D AoIShape = new CircleShape2D(); AoIShape.Radius = Gravity * 1000; AoICollision.Shape = AoIShape; InfluencedBodies = AreaOfInfluence.GetOverlappingBodies(); CallDeferred("UpdateInfluence", this); }
private void OnAsteroidImpact(int asteroidId, Vector2 impactPoint, int explosionRadius) { var explosionArea = new Area2D(); var shape = new CircleShape2D(); shape.Radius = explosionRadius; var collision = new CollisionShape2D(); collision.Shape = shape; explosionArea.AddChild(collision); explosionArea.GlobalPosition = impactPoint; CallDeferred(nameof(ImpactDeferred), explosionArea); }
public override void _Ready() { parent = GetParent() as Node2D; detect = (Area2D)GetNode("DetectRadius"); var col = (CollisionShape2D)detect.GetNode("CollisionShape2D"); var circle = new CircleShape2D(); circle.Radius = DetectRadius; col.Shape = circle; lookAhead1 = GetNode("LookAhead1") as RayCast2D; lookAhead2 = GetNode("LookAhead2") as RayCast2D; detect.Connect("body_entered", this, "OnDetectEntered"); detect.Connect("body_exited", this, "OnDetectExited"); base._Ready(); }
public void Initialize(GameWorld gameWorld, Agent agent, PathFinding pathFinding, float detectRaidus) { _gameWorld = gameWorld; _agent = agent; _patrolOrigin = _agent.GlobalPosition; _pathFinding = pathFinding; SetState(State.PATROL); CollisionShape2D detectRadius = (CollisionShape2D)(_playerDetectionZone.GetNode("CollisionShape2D")); CircleShape2D shape = new CircleShape2D(); shape.Radius = detectRaidus; detectRadius.Shape = shape; }
public override void _Ready() { radius = (FindNode("Range") as CollisionShape2D).GetShape() as CircleShape2D; radius.Radius = range; anim = FindNode("AnimationPlayer") as AnimationPlayer; sprite = FindNode("Sprite") as Sprite; explosionArea = FindNode("Explosion Area") as Area2D; Random rand = new Random(); sprite.Rotation = Mathf.Deg2Rad((float)(rand.Next(0, 359))); sprite.Scale = new Vector2(range / 24, range / 24); }
// Called when the node enters the scene tree for the first time. public override void _Ready() { base._Ready(); CollisionShape2D detectRadius = (CollisionShape2D)(GetNode("DetectRadius").GetNode("CollisionShape2D")); CircleShape2D shape = new CircleShape2D(); shape.Radius = DetectRadius; detectRadius.Shape = shape; isPrimaryWeapon = false; isSecondaryWeapon = false; speed = MaxSpeed; members = new Godot.Collections.Array(); }
public override void _Ready() { bodyCollisionShape = new CollisionShape2D(); bodyShape = new RectangleShape2D() { Extents = new Vector2(10, 20) }; bodyCollisionShape.Shape = bodyShape; AddChild(bodyCollisionShape); headCollisionShape = new CollisionShape2D(); headShape = new CircleShape2D() { Radius = 15 }; headCollisionShape.Position = new Vector2(0, -30); headCollisionShape.Shape = headShape; AddChild(headCollisionShape); }
public override void _Ready() { circleShape2D = new CircleShape2D() { Radius = Radius }; collisionShape2D = new CollisionShape2D() { Shape = circleShape2D }; AddChild(collisionShape2D); sprite = new SimpleCircleSprite() { Radius = Radius, Modulate = Colors.LightGoldenrod }; AddChild(sprite); }
public void Start(Vector2 pos, Vector2 velocity, int size) { Position = pos; _size = size; var mass = _size * 1.5; Sprite rock = GetNode <Sprite>("RockSprite"); rock.Scale = new Vector2(1, 1) * _scaleFactor * size; _radius = rock.Texture.GetSize().x / 2 * _scaleFactor * size; CircleShape2D collisionShape = new CircleShape2D(); collisionShape.Radius = _radius; GetNode <CollisionShape2D>("CollisionShape2D").Shape = collisionShape; LinearVelocity = velocity; Random r = new Random(); AngularVelocity = r.Next(-15, 15) / 10f; GetNode <Sprite>("Explosion").Scale = new Vector2(0.75f, 0.75f) * _size; }
public override void _Ready() { AreaOfInfluence = GetNode <Area2D>("AreaOfInfluence"); AreaOfInfluence.Connect("body_entered", this, "UpdateInfluence"); CollisionShape2D AoICollision = GetNode <CollisionShape2D>("AreaOfInfluence/CollisionShape2D"); CircleShape2D AoIShape = new CircleShape2D(); AoIShape.Radius = Gravity * 1000; AoICollision.Shape = AoIShape; if (OrbitalParentPath != null) { OrbitalParent = (CelestialBody)GetTree().Root.GetNode <CelestialBody>(OrbitalParentPath); } influencedBodies = AreaOfInfluence.GetOverlappingBodies(); CallDeferred("UpdateInfluence", this); }
public override void _Ready() { // GOAL: Find the nearest objective and kill it, otherwise patrol (basic AI) // Update detection Radius // References detectionRange = GetNode <Area2D>("DetectionRange"); lightEnemyAttack = GetNode <LightEnemyAttack>("LightEnemyAttack"); // Update Detection Radius detectionShape = detectionRange.GetChild <CollisionShape2D>(0); CircleShape2D shape = (CircleShape2D)detectionShape.Shape; shape.Radius = detectionRadius; // Signals detectionRange.Connect("body_entered", this, nameof(OnEnteredDetection)); lightEnemyAttack.Connect(nameof(LightEnemyAttack.PlayerEnteredRegion), this, nameof(OnEnteredAttackRange)); lightEnemyAttack.Connect(nameof(LightEnemyAttack.PlayerExitedRegion), this, nameof(OnExittedAttackRange)); lightEnemyAttack.Connect(nameof(LightEnemyAttack.PlayerHit), this, nameof(OnHitPlayer)); }
StaticBody2D loadCircBody(StadiumObject stadiumObject, StaticBody2D body) { CollisionShape2D collider = new CollisionShape2D(); CircleShape2D shape = new CircleShape2D(); CircStruct circStruct = (CircStruct)stadiumObject.ShapeStruct; shape.Radius = (float)circStruct.Size.X / 2; collider.Shape = shape; body.AddChild(collider); ImageTexture texture = new ImageTexture(); texture.Load(stadiumObject.TexturePath); Sprite sprite = new Sprite(); sprite.Texture = texture; body.AddChild(sprite); return(body); }
public void Init(Vector2 position, float radius = 100, MODES modes = MODES.LIMITED) { Position = position; _radius = radius; _pivot = GetNode <Node2D>("Pivot"); _orbitPosition = GetNode <Position2D>("Pivot/OrbitPosition"); _collisionShape2D = GetNode <CollisionShape2D>("CollisionShape2D"); _sprite = GetNode <Sprite>("Sprite"); _animationPlayer = GetNode <AnimationPlayer>("AnimationPlayer"); _label = GetNode <Label>("Label"); SetMode(modes); _circleShape2D = (CircleShape2D)_collisionShape2D.Shape; _circleShape2D.Radius = _radius; imgSize = _sprite.Texture.GetSize().x / 2; _sprite.Scale = Vector2.One * _radius / imgSize; _orbitPosition.Position = new Vector2(_radius + 25, 0); _rotationSpeed *= Mathf.Pow(-1, GD.Randi() % 2); }
public Pyroblast(Vector2 _direction, Vector2 _pos, int _targetLayer) : base(_direction, _pos, _targetLayer) { maxPierces = 3; damage = 1000f; knockbackStrength = 200f; maxVelocity = 100; acceleration = 10; effectRadius = 30f; cooldown = 3f; Position = Position + direction * 15f; Rotate(GetAngleTo(Position + direction)); VisibilityNotifier2D onScreenNotifier = new VisibilityNotifier2D(); onScreenNotifier.Connect("screen_exited", this, "queue_free"); AddChild(onScreenNotifier); // Sprite sprite.Texture = spriteImage; AddChild(sprite); // Collider hitArea.SetCollisionMaskBit(targetLayer, true); AddChild(hitArea); CollisionShape2D shape = new CollisionShape2D(); shape.Transform = new Godot.Transform2D(0f, new Vector2(-1, 0f)); CircleShape2D circle = new CircleShape2D(); circle.Radius = 6; shape.Shape = circle; hitArea.AddChild(shape); hitArea.Connect("area_entered", this, "_OnHurtAreaEnter"); // Emitters explosionEmitter.Emitting = false; explosionEmitter.Amount = 300; explosionEmitter.Lifetime = 4; explosionEmitter.OneShot = true; explosionEmitter.SpeedScale = 2; explosionEmitter.Explosiveness = 1; AddChild(explosionEmitter); smokeTrailEmitter.Amount = 200; smokeTrailEmitter.Preprocess = 0.5f; smokeTrailEmitter.ProcessMaterial = smokeTrailMaterial; AddChild(smokeTrailEmitter); fireTrailEmitter.Amount = 200; fireTrailEmitter.Preprocess = 0.5f; fireTrailEmitter.SpeedScale = 1.5f; fireTrailEmitter.Explosiveness = .1f; fireTrailEmitter.Randomness = 1; fireTrailEmitter.ProcessMaterial = fireTrailMaterial; fireTrailEmitter.Transform = new Godot.Transform2D(0f, new Vector2(-1, 0f)); AddChild(fireTrailEmitter); // Timers explosionCompleteTimer.WaitTime = 1f; explosionCompleteTimer.OneShot = true; explosionCompleteTimer.Connect("timeout", this, "queue_free"); AddChild(explosionCompleteTimer); initialBoomVelocityTimer.WaitTime = 0.2f; initialBoomVelocityTimer.OneShot = true; initialBoomVelocityTimer.Connect("timeout", this, "_RemoveInitialBoomVelocity"); AddChild(initialBoomVelocityTimer); Scale = new Vector2(1.7f, 1.7f); }
public Fireball(Vector2 direction, Vector2 position, int targetLayer) : base(direction, position, targetLayer) { damage = 100f; knockbackStrength = 50f; Acceleration = 200; effectRadius = 30f; LifetimeTotal = 1f; Texture gradient = ResourceLoader.Load("res://assets/gradients/radial.png") as Texture; light.Texture = gradient; light.Scale = new Vector2(.1f, .1f); light.Color = new Color(1f, .7f, .7f, .2f); AddChild(light); VisibilityNotifier2D onScreenNotifier = new VisibilityNotifier2D(); onScreenNotifier.Connect("screen_exited", this, "queue_free"); AddChild(onScreenNotifier); Position = Position + Direction * 10f; // Sprite sprite.Texture = spriteImage; AddChild(sprite); // Collider hitArea.CollisionLayer = 0; hitArea.SetCollisionMaskBit(0, false); hitArea.SetCollisionMaskBit(targetLayer, true); AddChild(hitArea); CollisionShape2D shape = new CollisionShape2D(); shape.Transform = new Godot.Transform2D(0f, new Vector2(-1, 0f)); CircleShape2D circle = new CircleShape2D(); circle.Radius = 6; shape.Shape = circle; hitArea.AddChild(shape); hitArea.Connect("area_entered", this, "_OnHurtAreaEnter"); // Emitters explosionEmitter.ProcessMaterial = explosionMaterial; explosionEmitter.Emitting = false; explosionEmitter.Amount = 150; explosionEmitter.Lifetime = 4; explosionEmitter.OneShot = true; explosionEmitter.SpeedScale = 2; explosionEmitter.Explosiveness = 1; explosionEmitter.ZIndex = -100; AddChild(explosionEmitter); smokeTrailEmitter.Amount = 200; smokeTrailEmitter.Preprocess = 0.5f; smokeTrailEmitter.ProcessMaterial = smokeTrailMaterial; AddChild(smokeTrailEmitter); fireTrailEmitter.Amount = 100; fireTrailEmitter.Preprocess = 0.5f; fireTrailEmitter.SpeedScale = 1.5f; fireTrailEmitter.Explosiveness = .1f; fireTrailEmitter.Randomness = 1; fireTrailEmitter.ProcessMaterial = fireTrailMaterial; fireTrailEmitter.Transform = new Godot.Transform2D(0f, new Vector2(-1, 0f)); AddChild(fireTrailEmitter); // Timers Color targetColor = new Color(light.Color.r, light.Color.g, light.Color.b, light.Color.a * 2); Color targetColorNone = new Color(light.Color.r, light.Color.g, light.Color.b, 0); Vector2 targetScale = light.Scale * 3 * Mathf.Clamp((float)new Random().NextDouble(), .5f, 1f); onHitTween.InterpolateProperty(light, "color", light.Color, targetColor, .2f, easeType: Tween.EaseType.Out); onHitTween.InterpolateProperty(light, "color", targetColor, targetColorNone, .1f, easeType: Tween.EaseType.Out, delay: .2f); onHitTween.InterpolateProperty(light, "scale", light.Scale, targetScale, .1f); onHitTween.InterpolateProperty(explosionMaterial, "gravity", explosionMaterial.Gravity, default(Vector3), 0.1f, delay: .2f); onHitTween.InterpolateCallback(this, 1f, "queue_free"); AddChild(onHitTween); lifetime.Connect("timeout", this, nameof(Explode)); }
public void SetCollisionRadius(float collisionRadius) { CircleShape2D collsionShape = (CircleShape2D)_circleCollisionShape.GetShape(); collsionShape.SetRadius(collisionRadius); }