Плачу 700Р. Добавить второй мяч в существующий код

Выполнен
Заказ
3819941
Раздел
Программирование
Антиплагиат
70% eTXT
Срок сдачи
20 Янв 2021 в 04:00
Цена
0 ₽
Блокировка
10 дней
Размещен
15 Янв 2021 в 13:40
Просмотров
31
Описание работы
Есть код с мячом в OpenGL на c++ ,нужно добавить второй мяч,только зелёного цвета.
#include
#include
#define _USE_MATH_DEFINES
#include
#pragma comment (lib, "opengl32.lib")
int width = 1200;
int height = 700;
float koef;
float gravityBall = 1;
void DrawCircle(int cnt) {
float x, y;
float da = M_PI * 2.0 / cnt;
glBegin(GL_TRIANGLE_FAN);
glVertex2f(0, 0);
for (int i = 0; i <= cnt; i++) {
x = sin(da * i);
y = cos(da * i);
glVertex2f(x, y);
}
glEnd();
}
struct Tball {
float x, y;
float dx, dy;
float r;
} TBall;
Tball ball;
int TBall_Init(Tball* obj, float x1, float y1, float dx1, float dy1, float r1) {
obj->x = x1;
obj->y = y1;
obj->dx = dx1;
obj->dy = dy1;
obj->r = r1;
return 1;
}
void Tball_Show(Tball obj) {
glPushMatrix();
glTranslatef(obj.x, obj.y, 0);
glScalef(obj.r, obj.r, 1);
DrawCircle(60);
glPopMatrix();
}
void Reflect(float* da, float* a, bool cond, float wall) {
if (!cond) return;
*da *= -0.85;
*a = wall;
}
void Tball_Move(Tball* obj) {
obj->x += obj->dx;
obj->y += obj->dy;
Reflect(&obj->dy, &obj->y, (obj->y r - 1), obj->r - 1);
Reflect(&obj->dy, &obj->y, (obj->y > 1 - obj->r), 1 - obj->r);
obj->dy -= gravityBall;
Reflect(&obj->dx, &obj->x, (obj->x r - koef), obj->r - koef);
Reflect(&obj->dx, &obj->x, (obj->x > koef - obj->r), koef - obj->r);
obj->dx -= gravityBall;
}
void Game_Init() {
TBall_Init(&ball, 0, 0.5, 0.005, -0.01, 0.2);
}
void Game_Show() {
glColor3f(1.0, 0.0, 0.0);
Tball_Show(ball);
}
int main(void)
{
GLFWwindow* window;
if (!glfwInit())
return -1;
window = glfwCreateWindow(width, height, "Hello,Mr. Grinkov", NULL, NULL);
if (!window)
{
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
koef = (float)width / height;
glScalef(1 / koef, 1, 1);
Game_Init();
while (!glfwWindowShouldClose(window))
{
glClearColor(1.0f, 1.0f, 1.0f, 0.0f);
glClear(GL_COLOR_BUFFER_BIT);
Tball_Move(&ball);
Game_Show();
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwTerminate();
return 0;
}
Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.96
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Время выполнения заказа:
4 дня 13 часов 20 минут
Выполнен в срок
Отзыв о выполненном заказе
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир