[Ответить в тред] Ответить в тред

Тред закрыт.


03/04/16 - Набор в модераторы 03.04 по 8.04
26/03/16 - Конкурс: Помоги гомункулу обрести семью!
15/10/15 - Набор в модераторы 15.10 по 17.10



[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 10 | 1 | 8
Назад Вниз Каталог Обновить

Чего он вытворяет ? Summertime Happyness 24/03/16 Чтв 16:22:54  697101   Обсуждение закрыто  
14588257743210.jpg (43Кб, 604x505)
С++ . Пытаюсь написать что то типа игры. Встрял на взаимодействии с картой. Все работает, а с картой постоянно косяк. В этом коде войд с самим взаимодействием тупо скатан с примера, но там он пашет, а здесь выдает нечто странное. КОгда персонаж приземляется, то при нажатии влево / вправо координата икс резко скачет влево, или вообще VS выдает ошибку string subscribe out of range. Про эту ошибку я много гуглил, понимаю из-за чего она, но не понимаю как исправить. Хотя думаю это из-за того что икс принимает какое то странное значение.


Вот сам код. Вопрос, почему он везде пашет у меня не пашет, и чего это при конкретном действии x = j 32 - 32; из икса не вынимается 32, а он просто принимает минимальное возможное значение или еще какую-то тарабарщину? Как это исправитЬ ??

class Player
{
public:
float dx;
float dy;
float x;
float y;
bool MoveLeft;
bool MoveRight;
bool Jump;
bool OnGround;
Image image;
Texture texture;
Sprite sprite;



Player()
{



x = 200;
y = 200;
dx = 0;
dy = 0;
MoveLeft = false;
MoveRight = false;
OnGround = false;
Jump = false;
image.loadFromFile("Hmn.jpg");

texture.loadFromImage(image);
sprite.setTexture(texture);
sprite.setTextureRect(IntRect(0, 0, 40, 70));



}


void update( float time )
{
interactionWithMap();
if ( OnGround == true ) { dy = 0; };
if ( OnGround == false ) { dy = dy + 0.00005
time; }
if ( MoveLeft == true ) { dx = -0.5; }
if ( MoveRight == true ) { dx = 0.5; }
if (( MoveLeft == false )&&( MoveRight == false )) { dx = 0; }


x += dx time;
y += dy
time;



if ( x < 32 ) { x = 32;}




sprite.setPosition(x,y);
}
void interactionWithMap()
{
for (int i = y/ 32; i < (y + 70) / 32; i++)
for (int j = x / 32; j < (x + 40) / 32; j++)
{


if (TileMap[j] == 'B')

{


if (dy>0)
{
OnGround = true;
}
else { OnGround = false; }


if (dy<0)
{
y = i 32 + 32;
}
if (dx>0)
{
x = j
32 - 32;
}
if (dx < 0)
{
x = j * 32 + 32;
}
}

}

}

};


Аноним 24/03/16 Чтв 18:05:45  697157
И тут ты читаешь прикреплённый тред и льёшь код на пейстбин
Аноним 24/03/16 Чтв 18:25:51  697184
>>697157
>
Братишка поясни какой тред какой пейстбейн че это вообще
Аноним 24/03/16 Чтв 18:33:31  697194
>>697101 (OP)
Не кидай код сюда. Он же нечитаем!
Не кидай код на файлообменники.
Сделай по-нормальному.
Аноним 24/03/16 Чтв 19:02:21  697224
>>697184
https://2ch.hk/pr/res/690259.html
Читаешь инструкцию на тему куда постить код в первом посте. Потом постишь код нормально, чтобы его можно было прочитать
Аноним 24/03/16 Чтв 20:44:50  697339
>>697194
>>697224
Иди нахуй.
 
Помогаем, анончики.
Аноним 24/03/16 Чтв 20:45:47  697340
бамп
Аноним 24/03/16 Чтв 21:00:41  697368
> Помогаем, аноничики
> Кинул код не на пейстбин
> Проебал всё форматирование
> Не сказал, какие библиотеки использует
> Послал нахуй за просьбу оформить тред правильно
> …
> Помогаем, аноничики
Ясно. Сажи быдлу.
Аноним 24/03/16 Чтв 21:11:12  697378
>>697339
Пошел нахуй, школьник.
Аноним 24/03/16 Чтв 21:30:43  697389
>>697378
Не пойду.
Бамп, помогаем.
Аноним 24/03/16 Чтв 21:34:58  697394
>>697101 (OP)
Допиши #pragma sage

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 10 | 1 | 8
Назад Вверх Каталог Обновить

Топ тредов