DesktopAssistant/Program.cs
2021-08-04 20:29:15 +02:00

212 lines
6.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Media;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DesktopAssistant
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
///
public static volatile Form1 form;
public static volatile Form2 form2;
public static Thread thread1;
public static Thread thread2;
public static Thread thread3;
public static Thread thread4;
public static Thread thread5;
public static Thread thread6;
public static bool playing = false;
public static bool wasplaying = false;
public static volatile bool closed = false;
public const int smoothingx = 10;
static void form1(object data)
{
Application.Run((Form1) data);
}
public static void form2x(object data)
{
Application.Run((Form2)data);
}
static void playaudio1(object data)
{
SoundPlayer sound = new SoundPlayer();
sound.Stream = (Stream)data;
sound.Play();
playing = false;
thread5 = new Thread(playaudio1);
return;
}
static void playaudio2(object data)
{
SoundPlayer sound = new SoundPlayer();
sound.Stream = (Stream)data;
sound.Play();
playing = false;
thread6 = new Thread(playaudio2);
return;
}
static void moveimage(object data)
{
Form2 imgview = (Form2)data;
Random rng = new Random();
int xdif;
int ydif;
int xpos2 = rng.Next(0, Screen.FromControl(form2).Bounds.Width - 341);
int ypos2 = rng.Next(0, Screen.FromControl(form2).Bounds.Height - 364);
int xpos = 0;
int ypos = 0;
int steps = 1;
xdif = imgview.Location.X - xpos2;
ydif = imgview.Location.Y - ypos2;
while (xdif != 0 || ydif != 0)
{
xdif = imgview.Location.X - xpos2;
ydif = imgview.Location.Y - ypos2;
if (xdif > 0)
{
xpos = imgview.Location.X - steps;
}
else if (xdif < 0)
{
xpos = imgview.Location.X + steps;
}
if (ydif > 0)
{
ypos = imgview.Location.Y - steps;
}
else if (ydif < 0)
{
ypos = imgview.Location.Y + steps;
}
imgview.Location = new Point(xpos, ypos);
Thread.Sleep(1);
}
thread4 = new Thread(moveimage);
}
static void movechar(object data)
{
Random rng = new Random();
Form1 formx = (Form1)data;
int xdif;
int ydif;
int xpos = 0;
int ypos = 0;
int steps = 1;
int ytemp = 0;
bool window = false;
bool firstrun = true;
bool canopen = false;
while (true)
{
canopen = closed || firstrun;
if (rng.Next(0, 1000) == 0 && canopen)
{
firstrun = false;
window = true;
closed = false;
ytemp = Cursor.Position.Y;
}
xdif = formx.obrazok.Location.X - Cursor.Position.X;
ydif = formx.obrazok.Location.Y - Cursor.Position.Y;
if (window)
{
xdif = formx.obrazok.Location.X;
ydif = formx.obrazok.Location.Y - ytemp;
if (xdif == 5)
{
window = false;
form2.Location = new Point(0, ytemp);
thread3.Start(form2);
form2.Location = new Point(0, ytemp);
thread4.Start(form2);
if (!playing)
{
playing = true;
thread6.Start(Properties.Resources.image_open);
}
}
}
if (xdif == 0)
{
formx.obrazok.Image = Properties.Resources.tucan1;
}
if (xdif > 5)
{
xpos = formx.obrazok.Location.X - steps;
formx.obrazok.Image = Properties.Resources.tucan1;
}
else if (xdif < -5)
{
xpos = formx.obrazok.Location.X + steps;
formx.obrazok.Image = Properties.Resources.tucan0;
}
if (ydif > 5)
{
ypos = formx.obrazok.Location.Y - steps;
}
else if (ydif < -5)
{
ypos = formx.obrazok.Location.Y + steps;
}
formx.obrazok.Location = new Point(xpos, ypos);
Thread.Sleep(1);
}
}
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Control.CheckForIllegalCrossThreadCalls = false; // daj sa vypchat c#
form = new Form1();
thread1 = new Thread(form1);
thread1.Start(form);
while (!form.ready) {
Thread.Sleep(10);
}
form2 = new Form2();
thread2 = new Thread(movechar);
thread2.Start(form);
thread3 = new Thread(form2x);
thread4 = new Thread(moveimage);
thread5 = new Thread(playaudio1);
thread6 = new Thread(playaudio2);
playing = true;
thread5.Start(Properties.Resources.start);
}
}
}