Форум программистов, компьютерный форум CyberForum.ru

Привести в движение один из квадратов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Реализация критической секции при наличии только Event'a в качестве средства синхронизации http://www.cyberforum.ru/cpp-beginners/thread1040723.html
Перенес в другой раздел - http://www.cyberforum.ru/win-api/thread1040724.html#post5490619 Удалите, пожалуйста эту тему
C++ Массивы и строки Помоги пожалуйста написать программу.ТЗ:Написать программу,коротая выводит с клавиатуры массив из 10 целых чисел,считает среднее арифметическое элементов массива и выводит результат пользователь;Затем вводит с клавивиатуры строку длиной не более 20 символов,считает длину введенной строки и выводит ее пользователю. http://www.cyberforum.ru/cpp-beginners/thread1040720.html
C++ Открыть бинарный файл(.ехе) и сохранить часть байтов в текст
Всем привет. Задача такая: нужно прочитать .exe. в конце его есть некие спецсимволы, которые мне нужно прочитать. Например они начинаются с "{${" и заканчиваются символами "}$}" например: ...blablabla...dfsdf8493uijf098jlsdvk.... ...blablalbla... {${SomeMessageForME}$}
C++ Разработать программу для реализации числ.метода парабол
Доброго времени суток, мужики. С++ пытаюсь учить по примерам из учебника Культин Н.Б, а в институте задали такую задачу с которой не могу справиться. Суть такова. Разработать программу на любом языке (мне по душе с++) для реализации числ.метода парабол x2+b*sin x = a при a = 1 / b= 4 Получается несуразица у меня. В МатКаде решил, и график построил для себя. Ответ по МатКаду = 0,238 int...
C++ Упорядочивание столбцов по убыванию характеристик http://www.cyberforum.ru/cpp-beginners/thread1040690.html
Характеристика столбца – максимум среди сумм цифр элементов. Знаю c#, а тут пришлось писать на с++. Написал такой код. #include "stdafx.h" #include <iostream> #include <locale> using namespace std; int _tmain(int argc, _TCHAR* argv) {
C++ Определить, есть ли в данном массиве строка, состоящая только из положительных чисел Ребят, помогите, "Дан массив размером nxn, элементы которого целые числа. При решений задач из данного пункта использовать двумерный массив: Определить, есть ли в данном массиве строка, состоящая только из положительных чисел" на с++ подробнее

Показать сообщение отдельно
Stocky
0 / 0 / 0
Регистрация: 01.11.2012
Сообщений: 30
14.12.2013, 04:51     Привести в движение один из квадратов
Хочу написать простейшую игрушку на с++ и вот такой вопрос, как привести в движение один из квадратов нажатием w, a, d
Вот сам код в котором только поле и два квадрата(зеленый и красный) и немного функций для того как будут двигаться эти самые квадраты)
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#include "stdafx.h"
#include <time.h>
#include <stdlib.h>
#include  <glut.h>
 
int w=800, h=600; //Размер поля
float gravity = 3.85; //Гравитация
float drag=0.8; //Переменная отвечающая за затухание
 
struct SQUARE1 
{
int x, y;
float dx, dy;
 
 
void move()
{
    dy=dy-gravity;
    
    x+=int(dx);
    y+=int(dy);
    
    if(y<0)
    {
        y=0;
        dy=-dy*drag;
        dx=dx*drag;
 
        if(x<0)
        {
            x=0;
            dx=-dx;
        }
        if(x>w)
        {
            x=w;
            dx=-dx;
        }
        }
}
    
 
void Draw()
{
    glColor3f(1.0,0.0,0.0);
    glRectf(x, y, x+40, y+40);
 
}
}square1;
 
 
 
struct SQUARE2
{
int x, y;
float dx, dy;
 
 
void move()
{
    dy=dy-gravity;
    
    x+=int(dx);
    y+=int(dy);
    
    if(y<0)
    {
        y=0;
        dy=-dy*drag;
        dx=dx*drag;
 
        if(x<0)
        {
            x=0;
            dx=-dx;
        }
        if(x>w)
        {
            x=w;
            dx=-dx;
        }
        }
}
    
 
void Draw()
{
    glColor3f(0.0,1.0,0.0);
    glRectf(x, y, x+40, y+40);
 
}
}square2;
 
 
void DrawField()
  {
   glColor3f(0.0,0.0,1.0);
}
 
void Tick()
 {
     square1.move();
     square2.move();
 
}
 
 void MyKeyboard(unsigned char key, int a, int b)
{  
    switch(key)
    {
    
    }
  
}
 
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    square1.Draw();
    square2.Draw();
    DrawField();
 
 
    glFlush();
}
 
void timer(int = 0)
{
  display();
 
  Tick();
       
 glutTimerFunc(50,timer,0);
}
 
int main(int argc, char **argv)
{
    square1.dx=-10;
    square1.dy=0;
 
    square1.x=600;
    square1.y=600;
 
    square2.dx=-10;
    square2.dy=0;
 
    square2.x=300;
    square2.y=400;
 
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB );
glutInitWindowSize (w, h);
glutCreateWindow ("PEZDA SATANA"); 
glClearColor(0.0,0.5,1.0,0.7);  
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0,w,0,h);
 
glutDisplayFunc (display);
glutKeyboardFunc(MyKeyboard);
glutTimerFunc(50,timer,0);
 
glutMainLoop();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru