7.07.2012 / 20:42 |  | 
ScRoLiS    Пользователь  
   Сейчас: Offline 
 Регистрация: 28.06.2010
   | Freddy, Он наверное просто для теста так сделал.
  __________________
   Чпок... Добрый вечер!  | 
  10.07.2012 / 09:38 |  | 
Bobrosoft    Пользователь  
   Сейчас: Offline 
 Имя: Pablo Регистрация: 20.08.2011
   | Помогите разобраться с кодом. Пишу на XNA, конкретно - разбираюсь с примером из книги. Описывается механизм столкновения астероидов asteroid1 и asteroid2. У каждого есть векторы, определяющие скорость (Velocity) и координаты центра (Center) астероида (принимаем его за квадрат). private void BounceAsteroids(Sprite asteroid1, Sprite asteroid2)  
{  
    Vector2 cOfMass = (asteroid1.Velocity + asteroid2.Velocity) / 2;  
    Vector2 normal1 = asteroid2.Center - asteroid1.Center;  
    normal1.Normalize();  
    Vector2 normal2 = asteroid1.Center - asteroid2.Center;  
    normal2.Normalize();  
    asteroid1.Velocity -= cOfMass;  
    asteroid1.Velocity = Vector2.Reflect(asteroid1.Velocity, normal1);  
    asteroid1.Velocity += cOfMass;  
    asteroid2.Velocity -= cOfMass;  
    asteroid2.Velocity = Vector2.Reflect(asteroid2.Velocity, normal2);  
    asteroid2.Velocity += cOfMass;  
}  
 Проблема в том, что я плохо понимаю векторы, можете мне разжевать?  Изменено Bobrosoft (10.07 / 09:41) (всего 3 раза) | 
  11.07.2012 / 20:41 |  | 
Bobrosoft    Пользователь  
   Сейчас: Offline 
 Имя: Pablo Регистрация: 20.08.2011
   | aNNiMON,  вау, спасибо большое, это именно то, что я так долго искал!   еще и про матрицы, вот это кайф!  | 
  12.07.2012 / 00:06 |  | 
Serzhant    Пользователь  
   Сейчас: Offline 
 Имя: Сергей Откуда: Астрахань Регистрация: 28.01.2012
   | я реально задолбался уже, как компилировать 1.cpp в 1.exe. у меня Borland C++ установлен...
   | 
  12.07.2012 / 03:49 |  | 
dzanis    Пользователь  
   Сейчас: Offline 
 Имя: Жаник Откуда: Rezekne Регистрация: 18.11.2010
   | Serzhant  Удали его.Лучше Dev-C++ скачай.Но я на CodeBlocks сижу,хотя есть Visual Studio и этот Borland тоже есть,ешё неразмагнитился     . В CodeBlocks  покрасивей подсветка и курсор на ошибку показывает. Анимон вот забыл сказать спасибо.    А самый простой вариант вызова методов из другого класа: // Maint.cpp  
#include "Other.cpp"  
   
Other other;  
   
int main(){  
other.start();  
}  
 В Other.cpp должны быть опубликованы статичные методы: //Other.cpp  
#include <cstdio.> // нужен для printf  
class Other{  
public:  
static void start(){  
    printf("Other.start()");  
}  
   
};  
  Изменено dzanis (12.07 / 03:52) (всего 2 раза) | 
  12.07.2012 / 06:58 |  | 
mrEDitor    Пользователь  
   Сейчас: Offline 
 Имя: Эдуард Откуда: Новороссийск » Таганрог Регистрация: 13.03.2011
   | Будет же двойное объявление метода. Наверное, лучше структуру объявить в заголовочном файле, а метод реализовать в CPP.
  А ещё я за Qt Creator, но весит под Windows он...
   Изменено mrEDitor (12.07 / 07:00) (всего 1 раз) | 
  12.07.2012 / 09:11 |  | 
Bobrosoft    Пользователь  
   Сейчас: Offline 
 Имя: Pablo Регистрация: 20.08.2011
   | mrEDitor,  я занимался кьютом, довольно интересная штука, но че-то перешел на С# (кажется, из-за XNA) и Visual Studio мне нравится больше...
   Изменено Bobrosoft (12.07 / 09:12) (всего 1 раз) | 
  12.07.2012 / 10:31 |  | 
dzanis    Пользователь  
   Сейчас: Offline 
 Имя: Жаник Откуда: Rezekne Регистрация: 18.11.2010
   | mrEDitor (12.07.2012/06:58) Будет же двойное объявление методаТ.е. двойное? Заметил что с других класов Other я немогу использовать,хотя мне и ненадо. А как лучше?
   | 
  12.07.2012 / 10:58 |  | 
Bobrosoft    Пользователь  
   Сейчас: Offline 
 Имя: Pablo Регистрация: 20.08.2011
   | aNNiMON,  прочитал, разобрался с механизмом, если кому-то интересно - могу добавить в код комментарии. Только с cOfMass не очень понятно, это, видимо, из физики. Надо будет перечитать-таки объяснение этого алгоритма
   |