пятница, сентября 25, 2009

Приехала на фестиваль 404

Завтра в Самаре будет фестиваль 404. Я решила посетить его с мужем за компанию. О разработке игр там, похоже, ничего не будет, так что подробные отчеты ищите на блогах веб-разработчиков, если интересно.

вторник, сентября 08, 2009

Блог I Get Your Fail

I Get Your Fail - Epic failures in the game development field. Что-то вроде The Daily WTF, но посвящен исключительно геймдеву.

Ссылку на него я привожу не столько для того, чтобы поржать, а скорее для того, чтобы поучиться на чужих ошибках.

Пара интересных видео оттуда.

Неправильная физика обломков


Атака ветряных мельниц

понедельник, сентября 07, 2009

Конструктор или оператор присваивания?

В C++ не всегда бывает так, что знак = означает вызов оператора присваивания, из-за чего народ начинает путаться.

Я нашла в comp.lang.c++.moderated большой хороший пример, может пригодится кому.


class B { ... };

class A
{
...
public:
// Constructor
A() { ... }

// Copy constructor
A(const A& a_obj) { ... }

// Constructor overloading
A(const B& b_obj) { ... }
...
A& operator=(const A& a_src) { ... }
...

};

// Примеры:
A a1; // конструктор вида A()
A a2(a1); // конструктор копирования A(a1)
A a3 = a2; // конструктор копирования A(a2)

B b;
A a4(b); // перегруженный конструктор A(b)
A a5 = b; // перегруженный конструктор A(b)

a1 = a5; // operator=(const A&) то есть operator=(a5)
a2 = b; // Шаг1: создается временный объект класса а A
// с помощью конструктора вида A(b),
// Шаг2: -> operator=(const A&) то есть operator=(A(b))

Если будете экспериментировать, не забудьте выключить оптимизацию.