Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using System.Threading;
- namespace WindowsFormsApplication3
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- void one()
- {
- Graphics g = this.CreateGraphics();
- int krlx,krly;
- int dlx=200; //размер трол.
- int dly=100;
- krlx= 60;
- krly=20;
- Point[] usiki =
- {
- new Point(krlx,krly),
- new Point(krlx+dlx/2,krly+30),
- new Point(krlx+dlx, krly),
- };
- Point[] okna =
- {
- new Point(krlx+20,krly+dly),
- new Point(krlx+dlx,krly+dly),
- new Point(krlx+dlx, krly+40),
- new Point(krlx+20, krly+40),
- };
- Point[] kuzov =
- {
- new Point(krlx,krly+30),
- new Point(krlx+dlx,krly+30),
- new Point(krlx+dlx, krly+30+dly),
- new Point(krlx, krly+30+dly),
- };
- bool vector, vector1, vector2;
- vector = vector1 = vector2 = false;
- int i = 400;
- int max, min;
- max = 450; min = 350;
- int step = 2;
- int sleep = 1;
- Point[] k = { new Point(0 + 400, 0 + i), new Point(30 + 400, 0 + i), new Point(15 + 400, 0 + i), new Point(15 + 400, 30 + i), };
- Point[] a = { new Point(40 + 400, 30 + i), new Point(70 + 400, 30 + i), new Point(60 + 400, 30 + i), new Point(60 + 400, 0 + i), new Point(50 + 400, 0 + i), new Point(50 + 400, 30 + i), };
- Point[] r = { new Point(85 + 400, 30 + i), new Point(85 + 400, 0 + i), new Point(100 + 400, 0 + i), new Point(100 + 400, 15 + i), new Point(85 + 400, 15 + i), };
- Pen p = new Pen(Color.DarkOrange, 5);
- Pen p1 = new Pen(Color.Green, 5);
- Pen p2 = new Pen(Color.Blue, 5);
- Pen p3 = new Pen(Color.Red, 5);
- Pen cl = new Pen(Color.White, 5);
- Pen c2 = new Pen(Color.Black, 2);
- int step1=20;
- SolidBrush myBrushBl = new SolidBrush(Color.Blue);
- SolidBrush myBrushBlck = new SolidBrush(Color.Black);
- SolidBrush myBrushok = new SolidBrush(Color.Aqua);
- SolidBrush lastik = new SolidBrush(Color.White);
- int g1=0;
- for (int j = 0; j < 600; j++)
- {
- Thread.Sleep(20);
- g.DrawLines(cl, kuzov);
- g.FillPolygon(lastik, kuzov);
- g.DrawLines(cl, usiki);
- g.DrawEllipse(cl, krlx + 20+g1*step1, krly + dly + 10, 50, 50);
- g.FillEllipse(lastik, krlx + 20+g1*step1, krly + dly + 10, 50, 50);
- g.DrawEllipse(cl, krlx + 20 + dlx / 2 + g1 * step1, krly + dly + 10, 50, 50);
- g.FillEllipse(lastik, krlx + 20 + dlx / 2 + g1 * step1, krly + dly + 10, 50, 50);
- g.DrawLines(cl, okna);
- g.FillPolygon(lastik, okna);
- g1++;
- if (step1 * g1 < dlx + krlx+100)
- {
- kuzov[0].X += step1;
- kuzov[1].X += step1;
- kuzov[2].X += step1;
- kuzov[3].X += step1;
- okna[0].X += step1;
- okna[1].X += step1;
- okna[2].X += step1;
- okna[3].X += step1;
- usiki[0].X += step1;
- usiki[1].X += step1;
- usiki[2].X += step1;
- Thread.Sleep(20);
- g.DrawLines(p, kuzov);
- g.FillPolygon(myBrushBl, kuzov);
- g.DrawLines(c2, usiki);
- g.DrawEllipse(cl, krlx + 20 + g1*step1, krly + dly + 10, 50, 50);
- g.FillEllipse(myBrushBlck, krlx + 20 + g1*step1, krly + dly + 10, 50, 50);
- g.DrawEllipse(cl, krlx + 20 + dlx / 2 + g1*step1, krly + dly + 10, 50, 50);
- g.FillEllipse(myBrushBlck, krlx + 20 + dlx / 2+g1*step1, krly + dly + 10, 50, 50);
- g.DrawLines(p, okna);
- g.FillPolygon(myBrushok, okna);
- }
- else
- {
- kuzov[0].X -= (g1-1) * step1;
- kuzov[1].X -= (g1-1) * step1;
- kuzov[2].X -= (g1-1) * step1;
- kuzov[3].X -= (g1-1) * step1;
- okna[0].X -= (g1-1)*step1;
- okna[1].X -= (g1-1)*step1;
- okna[2].X -= (g1-1)*step1;
- okna[3].X -= (g1-1)*step1;
- usiki[0].X -= (g1-1)*step1;
- usiki[1].X -= (g1-1)*step1;
- usiki[2].X -= (g1-1)*step1;
- g1 = 0;
- }
- g.DrawLine(c2, krlx - 10, krly, krlx + 2 * dlx, krly);
- g.DrawLine(c2, krlx - 10, krly + dly + 60, krlx + 2 * dlx, krly + dly + 60);
- }
- for (long ii = 0; ii< 200 ; ii++)
- {
- Thread.Sleep(sleep);
- if (ii % 4 == 0)
- {
- if (k[0].Y == min)
- {
- vector = true;
- }
- if (k[3].Y == max)
- {
- vector = false;
- }
- g.DrawLines(cl, k);
- if (vector)
- {
- k[0].Y += step; k[1].Y += step; k[2].Y += step; k[3].Y += step;
- }
- else
- {
- k[0].Y -= step; k[1].Y -= step; k[2].Y -= step; k[3].Y -= step;
- }
- g.DrawLines(p3, k);
- }
- if (ii % 3 == 0)
- {
- if (a[4].Y == min)
- {
- vector1 = true;
- }
- if (a[0].Y == max)
- {
- vector1 = false;
- }
- g.DrawLines(cl, a);
- if (vector1)
- {
- a[0].Y += step; a[1].Y += step; a[2].Y += step; a[3].Y += step; a[4].Y += step; a[5].Y += step;
- }
- else
- {
- a[0].Y -= step; a[1].Y -= step; a[2].Y -= step; a[3].Y -= step; a[4].Y -= step; a[5].Y -= step;
- }
- g.DrawLines(p2, a);
- }
- if (ii % 5 == 0)
- {
- if (r[1].Y == min)
- {
- vector2 = true;
- }
- if (r[0].Y == max)
- {
- vector2 = false;
- }
- g.DrawLines(cl, r);
- if (vector2)
- {
- r[0].Y += step; r[1].Y += step; r[2].Y += step; r[3].Y += step; r[4].Y += step;
- }
- else
- {
- r[0].Y -= step; r[1].Y -= step; r[2].Y -= step; r[3].Y -= step; r[4].Y -= step;
- }
- g.DrawLines(p1, r);
- }
- }
- }
- private void button1_Click(object sender, EventArgs e)
- {
- Thread a = new Thread(one);
- a.Start();
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- }
- }
- }
Add Comment
Please, Sign In to add comment