Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
26 / 26 / 3
Регистрация: 05.03.2010
Сообщений: 170

Движение квадрата в поле

10.11.2010, 00:02. Показов 1505. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. В данный момент пишу игру с использованием WINAPI и возникла трудность: по ходу игры по полю должны перемещаться квадраты. Начинает движение с одной точки, движется от нее в произвольном направлении, далее отталкивается от стены и продолжает движение и т.д. Может быть у кого-то завалялся подобный алгоритм? Желательно С/С++.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.11.2010, 00:02
Ответы с готовыми решениями:

Движение квадрата
Помогите пожалуйста надо нарисовать в делфи квадрат , чтоб он двигался во все 4 стороны с помощью кнопок не оставляя при этом следов:)

Движение квадрата.
Помогите пожалуйста с задачкой. Составить программу для построения на экране квадрата.Предусмотреть движение квадрата в четыре стороны по...

Движение квадрата
Не получается реализовать движение квадрата при нажатии на кнопку. unit Unit1; interface uses Windows, Messages, SysUtils,...

2
Заблокирован
11.11.2010, 10:46
я бы сделал так
поле, например, WxH
х,у - коорднаты квадрата, 0<x<2*W, 2*W+1=0, 0-1=2*W.
рисуем квадрат в точке х, если х<W и в точке 2*W-x, если х>W
если движение по диагонали, то же самое для у
я так когда-то что-то типа хоникса писал
1
26 / 26 / 3
Регистрация: 05.03.2010
Сообщений: 170
11.11.2010, 22:44  [ТС]
Уже разобрался сам)
Если кому-то интересно:
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
//class BLUERECT declaration
class BLUERECT
{
private:
    RECT rect;      //Êîîðäèíàòû ïðÿìîóãîëüíèêà
    POINT Size;     //Ðàçìåðû ïðÿìîóãîëüíèêà
    double k;       //Êîýôèöèåíò ïðÿìîé äâèæåíèÿ ïðÿì-êà
    bool dir;       //Íàïðàâëåíèå
    /*
            true = x++
            false = x--
    */
public:
    void Set(int ix, int iy, int iWidth, int iHeight)
    {
        srand((unsigned)time(NULL));
        rect.left = ix;
        rect.top = iy;
        rect.right = ix + iWidth;
        rect.bottom = iy + iHeight;
        Size.x = iWidth;
        Size.y = iHeight;
        dir = rand() % 2;
        k = ((double)(rand() % 16) + 5)/10;
    }
    BLUERECT()
    {
        SetRectEmpty(&rect);
        Size.x = 0;
        Size.y = 0;
        dir = 0;
        k = 0;
    }
    void Move(HWND hwnd)
    {
        srand((unsigned)time(NULL));
        RECT Field;
        int q, dx=0, dy=0;
        if (dir) 
            q = 1;
        else 
            q = -1;
        if (fabs(k) < 1)
            dx+= q;
        dx+= q;
        dy = (int)dx*k;
        OffsetRect(&rect, dx, dy);
        if (rect.left <= 0 || rect.right >= 440)
        {
            if (k > 0) 
                q = -1;
            else
                q = 1;
            k = ((double)(rand() % 16) + 5)/10;
                k*= q;
            dir = !dir;
        } 
        if (rect.top <= 0 || rect.bottom >= 430)
        {
            if (k > 0) 
                q = -1;
            else
                q = 1;
            k = ((double)(rand() % 16) + 5)/10;
                k*= q;
        }
        SetRect(&Field, rect.left-10, rect.top-10, 
                rect.right+10, rect.bottom+10);
        InvalidateRect(hwnd, &Field, TRUE); 
    }   
    RECT GetRect()
    {
        return rect;
    }
};
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.11.2010, 22:44
Помогаю со студенческими работами здесь

Движение квадрата по спирали
есть движение квадрата по спирали, необходимо через массив задать движение 3-х разных фигур заранее благодарен

Движение квадрата с клавиатуры
Не могу понять как реализовать движение квадрата с клавиатуры с помощью команд Forward(x) Left Right. Нужен пример хотябы для...

Движение Квадрата по Прямоугольнику
Добрый вечер! :) Помогите создать программу, демонстрирующую движение квадрата по прямоугольнику)

delphi 7 движение квадрата
ребят помогите как сделать чтобы квадрат двигался из стороны в сторну? (напишите программу) у меня вот так тока он уходит в сторну и...

Движение рёбер квадрата
Здравствуйте! Дали задание написать программу, в которой нужно построить квадрат с помощью линий, и далее, после нажатия кнопки, верхнее и...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru