Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
13 / 15 / 5
Регистрация: 01.05.2013
Сообщений: 357
.NET 4.x

"Убегающий" объект от курсора

05.03.2014, 19:23. Показов 1125. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне надо сделать так, чтоб в программе был определённый объект (В моём случае кнопка, которая имеет стороннюю текстуру) , который при перемещении курсора мыши ближе чем на 2 пикселя к нему , плавно перемещался в рандомные координаты.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.03.2014, 19:23
Ответы с готовыми решениями:

ИИ, убегающий от игрока
Я делаю 2д игру, в которой у персонажей видны только голова и руки. И я захотел сделать ещё одного персонажа, но который убегал бы от...

ИИ, убегающий от игрока
Я делаю 2д игру с видом сверху. И я захотел сделать ещё одного персонажа, но который убегал бы от игрока. Но у меня возник вопрос: как мне...

Автонаведение курсора на определенный объект
Здравствуйте уважаемые однофорумчане и гости форума ! Может кто нибудь подскажет такой скрипт , который после запуска приложения...

3
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
05.03.2014, 20:30
Когда-то у меня был подобный быдлокод:
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
using System;
using System.Windows.Forms;
 
namespace CatchMe
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        public static int d = 5;
        public struct Coords
        {
            public int formWidth;
            public int formHeight;
            public int Width;
            public int Height;
            public int MiddleX;
            public int MiddleY;
            public Coords(int formWidth, int formHeight, int Width, int Height)
            {
                this.formWidth = formWidth - 9 - d;
                this.formHeight = formHeight - 38 - d;
                this.Width = Width;
                this.Height = Height;
                MiddleX = Width / 2;
                MiddleY = Height / 2;
            }
        }
        System.Drawing.Point p = new System.Drawing.Point();
        Coords coords;
 
 
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("you win!");
        }
 
        private void button1_MouseMove(object sender, MouseEventArgs e)
        {
            if (button1.Left < d || button1.Right + d > coords.formWidth || button1.Top < d || button1.Bottom + d > coords.formHeight)
            {
                Random rd = new Random();
                button1.Left = rd.Next(0, coords.formWidth - coords.Width);
                button1.Top = rd.Next(0, coords.formHeight - coords.Height);
                return;
            }
            if (button1.Left > 0 && button1.Right < coords.formWidth)
                p.X = e.X < coords.MiddleX ? d : e.X == coords.MiddleX ? 0 : -d;
            if (button1.Top > 0 && button1.Bottom < coords.formHeight)
                p.Y = e.Y < coords.MiddleY ? d : e.Y == coords.MiddleY ? 0 : -d;
            if (DateTime.Now.Millisecond % 3 == 0)
            {
                button1.Left += p.X;
                button1.Top += p.Y;
            }
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            coords = new Coords(Width, Height, button1.Width, button1.Height);
        }
    }
}
строка if (DateTime.Now.Millisecond % 3 == 0) нужна была, чтобы пользователь мог попасть по кнопке. Можно сделать лучше, но в первом приближении так.
0
13 / 15 / 5
Регистрация: 01.05.2013
Сообщений: 357
05.03.2014, 20:40  [ТС]
Psilon, мне надо как раз таки, чтоб пользователь НЕ мог попасть по кнопке)
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
05.03.2014, 20:47
jwplaster, ну кидайте на форму кнопочку, копируйте в форму этот код, ну и закомментируйте строчку if (только одну строчку, то, что в условии должно остаться). Ну и подпишите кнопку на событие mouse_move
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.03.2014, 20:47
Помогаю со студенческими работами здесь

Наведение курсора мыши на объект
Здравствуйте ,не могу разобраться ,как сделать,чтобы при наведении мыши на объект (iz1,iz2,iz3) вылезало название(Музей-квартира...

Анимация при наведении курсора на объект
Возможно ли, чтобы при наведении курсора на объект появлялся другой объект? Например, при наведении курсора на картинку рядом появлялась...

Как перемещать объект на позицию курсора?
Мне нужно сделать сделать этакий 3D курсор, то есть чтобы некий объект (3D курсор) перемещался в 3D пространстве туда же где и находился...

Изменение курсора при наведении на объект
Хочу сделать так b.cursor:=windows.forms.cursors.WaitCursor; а выдаёт: menu.pas(33) : cursor не объявлен в типе PictureABC. Что я...

В консоль не выводится сообщение о наведении курсора на объект
Здравствуйте. Столкнулся с такой проблемой, когда навожу курсор на дерево, то в консоль должно выводиться Enter, но оно не выводится. ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru