0 / 0 / 0
Регистрация: 05.09.2012
Сообщений: 88
1

В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток, перемещающий его. Встретившись, объекты начинают двигаться

25.09.2012, 15:46. Показов 1819. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток, перемещающий его. Встретившись, объекты начинают двигаться волнообразно. Объекты размещаются случайно в окне при нажатии на кнопку.
Помогите пожалуйста написать программу на С++ или С#
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.09.2012, 15:46
Ответы с готовыми решениями:

Реализовать задачу: В окне перемещаются объекты, отталкиваясь от стенок окна
В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток,...

GluLookAt, почему перемещаются объекты, а не просто камера?
Почему при использовании lookat перемещаются объекты, а не просто камера, и создается новый центр ...

Как в дельфи сделать движущимися объекты, и могут ли они двигаться равномерно?
И без мерцания?

Надо что бы вместе с кругами рандомно появлялись еще и квадраты отталкиваясь от стенок.
Всем привет! У меня такая вот проблема: мне задали сделать анимацию движущихся рандомно кругов и...

1
0 / 0 / 0
Регистрация: 05.09.2012
Сообщений: 88
02.11.2012, 18:02  [ТС] 2
По примеру написал часть программы, но что то не могу понять как сделать чтобы при нажатии на кнопку сразу появлялось случайное число шаров и рассчитать расстояние между шарами чтобы дальше описать волнообразное движение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Threading;
using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace rgr1
{
    delegate void delEv(); 
    
    class Ball
    {
        public event delEv ev; 
        
        private int x, y; 
        private int w, h; 
        private int dx, dy; 
        private Thread t; 
        private bool life; 
        
        public int X
        { get { return x; } }
        
        public int Y
        { get { return y; } }
        
        public Ball(int X, int Y, int Dx, int Dy, int W, int H)
        {
            w = W; h = H;
            x = X; y = Y; dx = Dx; dy = Dy;
            
            life = true;
            t = new Thread(new ThreadStart(BallFunc));
            t.Start();
        }
        public void Finish()
        {
            life = false;
            t.Join();
        }
        void BallFunc()
        {
            while (life)
            {
                x += dx; y += dy;
                if (x > w || x < 0)
                {
                    dx = -dx;
                    
                }
                if (y > h || y < 0)
                {
                    dy = -dy;
                    
                }
                
                if (ev != null)
                {
                    ev();
                }
                Thread.Sleep(100);
            }
        }
    }
 class Wind : Form
    {
      
        Button butAdd; 
        ArrayList aL; 
        Random r; 
        public Wind() 
        {   
            
            aL = new ArrayList(); 
            r = new Random(); 
            butAdd = new Button(); 
            butAdd.Location = new Point(100, 24);
            
            butAdd.Size = new Size(32, 24);
            butAdd.Text = "Add"; 
            
            butAdd.Click += new EventHandler(OnButAdd);
            Controls.Add(butAdd);
        }
        
        void OnButAdd(object obj, EventArgs arg)
        {
            Ball b = new Ball(r.Next(this.Width), r.Next(this.Height),
            r.Next(5, 10), r.Next(5, 15),
            this.ClientSize.Width, this.ClientSize.Height);
            b.ev += new delEv(HandlerEv);
            
            aL.Add(b);
        }
       
        protected override void OnPaint(PaintEventArgs arg)
        {
            for (int i = 0; i < aL.Count; i++)
            {
                Ball b = (Ball)aL[i];
                arg.Graphics.DrawEllipse(new Pen(Color.Blue),
                b.X, b.Y, 20, 20);
            }
            
 
        }
        
        void HandlerEv()
        {
            Invalidate();
        }
      
        protected override void OnClosed(EventArgs e)
        {
            base.OnClosed(e);
            for (int i = 0; i < aL.Count; i++)
            {
                Ball b = (Ball)aL[i];
                b.Finish();
            }
        }
        
        static void Main(string[] args)
        {
            Wind w = new Wind();
            Application.Run(w);
        }
    }
}
0
02.11.2012, 18:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2012, 18:02
Помогаю со студенческими работами здесь

Как уничтожать динамические объекты и вообще объекты, если это необходимо сделать в их процедурах?
Создать отдельную процедуру CloseObject(Object: TObject) и вызывать ее в конце процедуры или так...

Встроенные объекты Java Script. Объекты Array, Date
Создать массив, содержащий названия элементов, находящихся в системном блоке компьютера. Добавить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru