Форум программистов, компьютерный форум, киберфорум
OpenGL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
1 / 1 / 0
Регистрация: 14.09.2017
Сообщений: 20
1

Перемещение квадрата

21.04.2018, 01:17. Показов 1904. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет, нарисовал белый прямоугольник, поверх него нарисовал еще красный квадратик, хочу, чтобы квадратик при нажатии на клавиши "ходил" по этому полю, сделал функцию, но почему то ничего не двигается. Помогите разобраться немного, пожалуйста.
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
#include<gl\glut.h>
 
float WinWid = 400.0;//Ширина окна
float WinHei = 550.0;//Высота окна
float base_x = 0, base_y = 0, base_z = 0;
 
void Draw()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(1.0, 1.0, 1.0);
    glBegin(GL_POLYGON);//белый прямоугольник
    glVertex3f(-119.5, -55.0, 0.0);//левая нижняя
    glVertex3f(-119.5, 264.5, 0.0);//левая верхняя
    glVertex3f(119.5, 264.5, 0.0);//правая верхняя
    glVertex3f(119.5, -55.0, 0.0);//правая нижняя
    glEnd();
    glColor3f(0.0, 0.0, 0.0);
    glBegin(GL_LINES);
    for (float i = -WinWid / 2; i <= WinWid / 2; i += 20.0)//вертикальные линии
    {
        glVertex2f(i, -WinHei / 2);
        glVertex2f(i, WinHei / 2);
    }
    for (float i = -WinHei / 2; i <= WinHei / 2; i += 20.0)//горизонтальные линии
    {
        glVertex2f(-WinWid / 2, i);
        glVertex2f(WinWid / 2, i);
    }
    glEnd();
    glLoadIdentity();
    glTranslatef(base_x, base_y, base_z);
    glColor3f(1.0, 0.0, 0.0);
    glBegin(GL_POLYGON);//красный квадратик, который нужно переместить
    glVertex3f(-119.5, 244.5, 0.0);//левая нижняя
    glVertex3f(-119.5, 264.5, 0.0);//левая верхняя
    glVertex3f(-99.5, 264.5, 0.0);//правая верхняя
    glVertex3f(-99.5, 244.5, 0.0);//правая нижняя
    glEnd();
    glFlush();
    glutSwapBuffers();
    glutPostRedisplay();
}
 
void KeyboardEvent(int key, int a, int b)
{
    switch (key)
    {
    case 37:  base_x -= 20.0f; break;
    case 39:  base_x += 20.0f; break;
    }
}
 
void Initialize()
{
    glClearColor(0.0, 0.0, 0.0, 0.0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(-WinWid / 2, WinWid / 2, -WinHei / 2, WinHei / 2, -200.0, 200.0);
    glMatrixMode(GL_MODELVIEW);
}
 
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    glutInitWindowSize(WinWid, WinHei);
    glutInitWindowPosition(100, 200);
    glutCreateWindow("Tetris");
    glutDisplayFunc(Draw);
    glutSpecialFunc(KeyboardEvent);
    Initialize();
    glutMainLoop();
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.04.2018, 01:17
Ответы с готовыми решениями:

Перемещение квадрата туда куда кликнул мышкою
Добрый вечер! У меня возникла проблема, во время делания кода, который при клике мышки должен...

Перемещение камеры = -перемещение сцены?
Прочитала в redbook что переместить камеру можно 2 способами: переместить саму камеру в прямом...

перемещение квадрата
Помогите пожалуйста сделать перемещение куба используя динамическую память. uses crt,graph;...

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

2
144 / 88 / 23
Регистрация: 31.08.2016
Сообщений: 777
25.04.2018, 16:03 2
возможно в обработке клавы
0
3420 / 1607 / 236
Регистрация: 26.02.2009
Сообщений: 7,858
Записей в блоге: 5
25.04.2018, 19:00 3
А так?
C++
1
2
3
4
5
6
7
8
9
void KeyboardEvent(int key, int a, int b)
{
    switch (key)
    {
    case 37:  base_x -= 20.0f; break;
    case 39:  base_x += 20.0f; break;
    }
    glutPostRedisplay();
}
0
25.04.2018, 19:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2018, 19:00
Помогаю со студенческими работами здесь

Перемещение квадрата по диагонали!
Создать приложение для перемещения квадрата по диагонали области рисования. При достижении...

Перемещение квадрата сверху вниз
помогите, нужна программа в которой квадрат будет перемещаться сверху вниз. паскальАБС

Перемещение нарисованного квадрата курсором
Есть вот такой код, рисующий на форме квадрат: from tkinter import * root = Tk() canvas =...

Перемещение квадрата по игровому полю
Всем привет.Есть задача Переместить квадрат вводим координаты объекта(х,у) и он перемещается в...


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

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