Форум программистов, компьютерный форум, киберфорум
Наши страницы

Определение столкновений в простой 2D игре - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать рекурсивную функцию вычисления суммы цифр натурального числа http://www.cyberforum.ru/cpp-beginners/thread681655.html
Нужно написать рекурсивную функцию вычисления суммы цифр натурального числа. Я написал нижеследующее что тоже работает, но это не рекурсивная функция, как написать рекурсивную? #include...
C++ написать рекурсивную функцию, которая взводит число в степень путем многократного умножения числа на самое себя. Помогите написать программу , которая запрашивает два числа (1-ое число, 2 -показатель его степени). И надо написать рекурсивную функцию, которая взводит число в степень путем многократного... http://www.cyberforum.ru/cpp-beginners/thread681646.html
Количество различных рациональных чисел которые можно получить роставляя скобки C++
Обозначим i-е простое число как Рi (Р1=2, Р2=3, Р3=5 и т.д.). Для данного числа n рассмотрим выражение: Р1 / Р2 / Р3 / ... / Рn. Напишите программу, подсчитывающую количество различных рациональных...
C++ Считывание текстового файла в структуру на С++
Задача: В текстовом файле записана следующая информация о пирожных: название, флаг, масса, питательность. Необходимо считать данные из файла, причем в зависимости от значения флага питательность...
C++ нужно определиться с наследованием класса http://www.cyberforum.ru/cpp-beginners/thread681627.html
#include <iostream.h> #include <stdlib.h> #include <conio.h> class B{ int a; public: B() { }; B(int x) { a=x; } void show_B() { cout <<"B= "<< a << "\n"; }
C++ Перевод из String^ в char*. Русскиме символы Доброго времени суток. Нужно перевести String^ в char*. Делаю следующим образом: String^ name_d=Convert::ToString(textBox1->Text); *temp = new char; int i; for(i=0; i<name_d->Length;i++) {... подробнее

Показать сообщение отдельно
sooqua
15 / 9 / 0
Регистрация: 23.02.2012
Сообщений: 135

Определение столкновений в простой 2D игре - C++

27.10.2012, 13:27. Просмотров 5637. Ответов 4
Метки (Все метки)

Пишу 2D игру (что-то вроде марио ).
В ней есть игрок и всякие предметы. Надо сделать функцию которая будет проверять не вошёл ли игрок в стену или в ящик, и если вошёл то вытащить его в самое доступное место))

У меня есть:
1) Координаты левого верхнего и правого нижнего угла игрока. (всего 4 переменные - по 2 координаты на точку (или угол, как вам удобнее))
2) Координаты левого верхнего и правого нижнего угла ящика. (то же самое, 4 переменные)
3) Ширина и высота игрока
4) Ширина и высота ящика

Выглядит столкновение примерно так (игрок - зеленый, ящик - синий):
http://dofrag.ru/upload/2461
A,A1,A2 и B,B1,B2 - не существует)) Вместо A1 - A1X и A1Y (2 координаты этой точки), вместо B2 - B2X и B2Y и т.д.
Надо получить всего 2 числа - на сколько надо сдвинуть игрока по оси X (B1X и B2X) и по Y (B1Y и B2Y) чтобы он вылез из синего квадрата, еще раз - В САМОЕ ДОСТУПНОЕ МЕСТО (в данном случае надо сдвинуть вправо). - 1) оба числа могут быть отрицательными (если надо двигать игрока влево или вверх) 2) игрок не должен деформироваться, т.е. его ширина и высота не должны измениться
И это не всё. Так как игрок может двигаться, а ящик (в моей игре) парить в воздухе, может случиться и такая ситуация:
http://dofrag.ru/upload/2462
Тогда игрока надо сдвинуть ВНИЗ.

Не смейтесь над тем как я поставил задачу, и что я делаю в программировании без элементарных знаний математики .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru