|
@ -12,7 +12,7 @@ namespace SemiColinGames { |
|
|
private Vector2 anchor; |
|
|
private Vector2 anchor; |
|
|
private float radius; |
|
|
private float radius; |
|
|
private float angle; |
|
|
private float angle; |
|
|
private float momentum = -400; // radians / second * pixels
|
|
|
|
|
|
|
|
|
private float momentum = -300; // radians / second * pixels
|
|
|
|
|
|
|
|
|
public Spider(float x, float y, float radius, float angle) { |
|
|
public Spider(float x, float y, float radius, float angle) { |
|
|
Position = new Vector2(); |
|
|
Position = new Vector2(); |
|
@ -22,8 +22,8 @@ namespace SemiColinGames { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void Update(float modelTime, History<Input> input) { |
|
|
public void Update(float modelTime, History<Input> input) { |
|
|
radius += 100 * modelTime * input[0].Motion.Y; |
|
|
|
|
|
radius = Math.Clamp(radius, 10, 300); |
|
|
|
|
|
|
|
|
radius += 150 * modelTime * input[0].Motion.Y; |
|
|
|
|
|
radius = Math.Clamp(radius, 50, 200); |
|
|
float angleChange = modelTime * momentum / radius; |
|
|
float angleChange = modelTime * momentum / radius; |
|
|
angle += angleChange; |
|
|
angle += angleChange; |
|
|
float x = anchor.X + radius * (float) Math.Sin(angle); |
|
|
float x = anchor.X + radius * (float) Math.Sin(angle); |
|
@ -41,7 +41,7 @@ namespace SemiColinGames { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public class Anchor { |
|
|
public class Anchor { |
|
|
public TextureRef Texture = Textures.Blue1; |
|
|
|
|
|
|
|
|
public TextureRef Texture = Textures.Terran; |
|
|
public Vector2 Position; |
|
|
public Vector2 Position; |
|
|
|
|
|
|
|
|
public Anchor(float x, float y) { |
|
|
public Anchor(float x, float y) { |
|
@ -62,10 +62,12 @@ namespace SemiColinGames { |
|
|
|
|
|
|
|
|
public SpiderWorld() { |
|
|
public SpiderWorld() { |
|
|
Bounds = new Rectangle(0, 0, 1280, 720); |
|
|
Bounds = new Rectangle(0, 0, 1280, 720); |
|
|
Player = new Spider(1280 / 2, 720 / 2, 200, 0); |
|
|
|
|
|
|
|
|
Player = new Spider(200, 720 / 2, 200, 0); |
|
|
|
|
|
|
|
|
Anchors = new ProfilingList<Anchor>(100, "anchors"); |
|
|
Anchors = new ProfilingList<Anchor>(100, "anchors"); |
|
|
Anchors.Add(new Anchor(1280 / 2, 720 / 2)); |
|
|
|
|
|
|
|
|
Anchors.Add(new Anchor(200, 720 / 2)); |
|
|
|
|
|
Anchors.Add(new Anchor(600, 720 / 4)); |
|
|
|
|
|
Anchors.Add(new Anchor(800, 640)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
~SpiderWorld() { |
|
|
~SpiderWorld() { |
|
|