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

Нужно сделать автоматическое движение персонажа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить наибольший элемент последовательности http://www.cyberforum.ru/cpp-beginners/thread1176530.html
Поступает последовательность из N вещественных чисел. Определить наибольший элемент последовательности
C++ Вычислить средний балл учеников класса, если известны оценки каждого ученика Вычислить средний балл учеников класса, если известны оценки каждого ученика пг математике, русскому языку и физике. Распечатать список учеников, имеющих средний балл выше среднего в классе! Решите пожалуйста вообще срочно надо. http://www.cyberforum.ru/cpp-beginners/thread1176516.html
C++ Из входной последовательности целых чисел построить бинарное дерево поиска
Ребят помогите решить задачу // Из входной последовательности целых чисел построить бинарное дерево поиска. Определить количество узлов дерева, находящихся на n-ом уровне дерева (n задается пользователем)., а точнее мне нужно написать ф-цию, которая определяет количество узлов дерева, находящихся на n-уровне дерева.
C++ Сформировать новую матрицу В, изъяв из матрицы А строки, где находится минимальное значение
Составить программу для обработки двумерных массивов. Формирование элементов матрицы осуществить с помощью генератора случайных чисел: Сформировать новую матрицу В, изъяв из матрицы А строка , где находится минимальное значение среди сумм элементов строк матрицы А.
C++ Написать программу перекодировки текстового файла в транслит и наоборот http://www.cyberforum.ru/cpp-beginners/thread1176489.html
Мне нужно написать программу перекодировки текстового файла в транслит и наоборот, я все написал только ни как не получается профести транслитерацию обратно. Исходник из того что есть я прикрепил.
C++ Класс,почему не меняется переменная не могу понять почиму не работает "a1=y;"Помогите пожалуста. //Complex.h #include <iostream> using namespace std; class Complex{ private: double re,im; friend class Array; public: Complex (){re=0;im=0;}; подробнее

Показать сообщение отдельно
Fr1kson
22 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 48
15.05.2014, 08:40     Нужно сделать автоматическое движение персонажа
C++ (Qt)
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
165
166
167
168
169
170
171
172
#include <SFML/Graphics.hpp>
 
using namespace sf;
 
 
float offsetX=0, offsetY=0;
 
 
const int H = 12;
const int W = 40;
 
 
String TileMap[H] = {
 
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"B                                B     B",
"B                                B     B",
"B                                B     B",
"B                                B     B",
"B         0000                BBBB     B",
"B                                B     B",
"BBB                              B     B",
"B              BB                BB    B",
"B              BB                      B",
"B    B         BB         BB           B",
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
 
}; 
 
class PLAYER {
 
public:
 
float dx,dy;
FloatRect rect;
bool onGround;
Sprite sprite;
float currentFrame;
 
    PLAYER(Texture &image)
   {
    sprite.setTexture(image);
    rect = FloatRect(7*32,9*32,40,50);
 
    dx=dy=0.1;
    currentFrame = 0;
   }
 
 
   void update(float time)
   {    
 
     rect.left += dx * time;    
     Collision(0);
 
     if (!onGround) dy=dy+0.0005*time;
     rect.top += dy*time;
     onGround=false;
     Collision(1);
  
     
      currentFrame += 0.005*time;
      if (currentFrame > 6) currentFrame -=6 ;
 
      if (dx>0) sprite.setTextureRect(IntRect(40*int(currentFrame),244,40,50));
      if (dx<0) sprite.setTextureRect(IntRect(40*int(currentFrame)+40,244,-40,50));
     
 
      sprite.setPosition(rect.left - offsetX, rect.top - offsetY);
 
      dx=0;
   }
 
 
 
   void Collision(int dir)
   {
     for (int i = rect.top/32 ; i<(rect.top+rect.height)/32; i++)
      for (int j = rect.left/32; j<(rect.left+rect.width)/32; j++)
        { 
         if (TileMap[i][j]=='B') 
           { 
            if ((dx>0) && (dir==0)) rect.left =  j*32 -  rect.width; 
            if ((dx<0) && (dir==0)) rect.left =  j*32 + 32;
            if ((dy>0) && (dir==1))  { rect.top =   i*32 -  rect.height;  dy=0;   onGround=true; }
            if ((dy<0) && (dir==1))  { rect.top = i*32 + 32;   dy=0;}
           }
         
         if (TileMap[i][j]=='0') 
                           { 
                             TileMap[i][j]=' ';
                           }
                
        }
   
   }
};
 
int main()
{
    RenderWindow window( VideoMode(600, 400), "Test!");
 
    Texture t;
    t.loadFromFile("fang.png");
 
    float currentFrame=0;
 
    PLAYER p(t);
 
    Clock clock;
 
    RectangleShape rectangle( Vector2f(32,32));
 
    while (window.isOpen())
    {
        float time = clock.getElapsedTime().asMicroseconds();
        clock.restart();
 
        time = time/700;
        
        if (time>20) time = 20;
 
        Event event;
        while (window.pollEvent(event))
        {
            if (event.type == Event::Closed)
                window.close();
        }
 
        if (Keyboard::isKeyPressed(Keyboard::Left)) 
        {
            p.dx = -0.1;
 
        }
 
        if (Keyboard::isKeyPressed(Keyboard::Right)) 
        {
            p.dx = 0.1;
        }
 
        if (Keyboard::isKeyPressed(Keyboard::Up)) 
        {
            if (p.onGround) { p.dy=-0.35; p.onGround=false;}
        }
 
        p.update(time);
 
        if (p.rect.left>300) offsetX = p.rect.left - 300;
        offsetY = p.rect.top - 200;
 
        window.clear(Color::White);
 
 
         for (int i=0; i<H; i++)
             for (int j=0; j<W ; j++)
                { 
                  if (TileMap[i][j]=='B') rectangle.setFillColor(Color::Black);
 
                  if (TileMap[i][j]=='0')  rectangle.setFillColor(Color::Green);
 
                  if (TileMap[i][j]==' ') continue;
 
                  rectangle.setPosition(j*32-offsetX,i*32 - offsetY) ; 
                  window.draw(rectangle);
             }
    
        window.draw(p.sprite);
        window.display();
    }
 
    return 0;
}
вот моя игра, по сути в ней пока ничего нет, но я хотел бы сделать чтобы персонаж двигался сам , а я мог прыгать и нагибаться
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru