69 lines
1.8 KiB
C#
69 lines
1.8 KiB
C#
using Microsoft.Xna.Framework;
|
|
using System;
|
|
namespace Terraria
|
|
{
|
|
public class Star
|
|
{
|
|
public Vector2 position;
|
|
public float scale;
|
|
public float rotation;
|
|
public int type;
|
|
public float twinkle;
|
|
public float twinkleSpeed;
|
|
public float rotationSpeed;
|
|
public static void SpawnStars()
|
|
{
|
|
Main.numStars = Main.rand.Next(65, 130);
|
|
Main.numStars = 130;
|
|
for (int i = 0; i < Main.numStars; i++)
|
|
{
|
|
Main.star[i] = new Star();
|
|
Main.star[i].position.X = (float)Main.rand.Next(-12, Main.screenWidth + 1);
|
|
Main.star[i].position.Y = (float)Main.rand.Next(-12, Main.screenHeight);
|
|
Main.star[i].rotation = (float)Main.rand.Next(628) * 0.01f;
|
|
Main.star[i].scale = (float)Main.rand.Next(50, 120) * 0.01f;
|
|
Main.star[i].type = Main.rand.Next(0, 5);
|
|
Main.star[i].twinkle = (float)Main.rand.Next(101) * 0.01f;
|
|
Main.star[i].twinkleSpeed = (float)Main.rand.Next(40, 100) * 0.0001f;
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Main.star[i].twinkleSpeed *= -1f;
|
|
}
|
|
Main.star[i].rotationSpeed = (float)Main.rand.Next(10, 40) * 0.0001f;
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Main.star[i].rotationSpeed *= -1f;
|
|
}
|
|
}
|
|
}
|
|
public static void UpdateStars()
|
|
{
|
|
for (int i = 0; i < Main.numStars; i++)
|
|
{
|
|
Main.star[i].twinkle += Main.star[i].twinkleSpeed;
|
|
if (Main.star[i].twinkle > 1f)
|
|
{
|
|
Main.star[i].twinkle = 1f;
|
|
Main.star[i].twinkleSpeed *= -1f;
|
|
}
|
|
else
|
|
{
|
|
if ((double)Main.star[i].twinkle < 0.5)
|
|
{
|
|
Main.star[i].twinkle = 0.5f;
|
|
Main.star[i].twinkleSpeed *= -1f;
|
|
}
|
|
}
|
|
Main.star[i].rotation += Main.star[i].rotationSpeed;
|
|
if ((double)Main.star[i].rotation > 6.28)
|
|
{
|
|
Main.star[i].rotation -= 6.28f;
|
|
}
|
|
if (Main.star[i].rotation < 0f)
|
|
{
|
|
Main.star[i].rotation += 6.28f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|