별건 아니고 빨간점이 계속 왓다리 갔다리 하는 프로그램이다.
후배가 고양이를 길러서 종종 놀러가는데 그 때 마다 핸드폰으로 이런 빨간불이 계속 이동하는 프로그램을 틀어주는데
일단 핸드폰은 너무작고, 자꾸 홈으로 나가서 이상한 프로그램을 켜버린다..
안드로이드 패드나 아이패드가 있었다면 그냥 거기서 깔아서 쓸텐데
본인은 태블릿은 서피스와 서피스북만 가지고 있으므로... 윈도우버전 프로그램을 찾는데 없어서 그냥 만들었다.
만드는김에 맨날 WPF만 쓰는거 같아서 UWP 로 만들어 보았다.
코딩자체는 뭐 랜덤하게 위치잡고 선형보간으로 움직이는정도.. 별도 설정이나 FPS 고정같은것은 하지않았다.
2019/08/24 - [프로그래밍 노트/C#] - UWP Fullscreen
2019/08/24 - [프로그래밍 노트/C#] - UWP 를 위한 2D 렌더링 엔진 Win2D
위 2가지 방법을 사용,
public sealed partial class MainPage : Page
{
static Random random = new Random();
static Point GoalPosition = new Point();
static Point DrawPosition = new Point();
static Point StartPosition = new Point();
static Windows.Foundation.Rect ScreenSize = ApplicationView.GetForCurrentView().VisibleBounds;
static double distance;
static int time = 0;
public MainPage()
{
this.InitializeComponent();
DrawPosition = RandomPos();
StartPosition = DrawPosition;
GoalPosition = RandomPos();
distance = Math.Sqrt((StartPosition.X - GoalPosition.X) * (StartPosition.X - GoalPosition.X) + (StartPosition.Y - GoalPosition.Y) * (StartPosition.Y - GoalPosition.Y));
}
void CanvasControl_Draw(ICanvasAnimatedControl sender, CanvasAnimatedDrawEventArgs args)
{
args.DrawingSession.DrawCircle(DrawPosition.X, DrawPosition.Y, 30, Colors.Red, 15);
}
void CanvasControl_Update(ICanvasAnimatedControl sender, CanvasAnimatedUpdateEventArgs args)
{
time+= 30;
float f = ((time / distance)> 1 ) ? 1 : (float)(time / distance);
DrawPosition = Lerp(StartPosition, GoalPosition, f);
if (DrawPosition.X == GoalPosition.X)
{
time = 0;
GoalPosition = RandomPos();
StartPosition = DrawPosition;
}
}
private Point RandomPos()
{
return new Point(random.Next((int)ScreenSize.Width), random.Next((int)ScreenSize.Height));
}
Point Lerp(Point v1, Point v2, float f)
{
int newX = (int)(v1.X * (1 - f) + v2.X * f);
int newY = (int)(v1.Y * (1 - f) + v2.Y * f);
return new Point(newX, newY);
}
}
728x90
'프로그래밍 기록 > 토이' 카테고리의 다른 글
연구실 서버관리 페이지 (0) | 2019.10.04 |
---|---|
원격 데스크탑 실행 프로그램 (1) | 2019.10.04 |
금수저게임 "언제나 금수저" (0) | 2019.10.02 |
빛을 이용한 퍼즐 게임 (0) | 2019.10.02 |
검은방 플래시 팬게임 (0) | 2019.10.02 |