Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 2 3 [4] 5   Вниз
  Печать  
Автор Тема: Давайте изучим DX9 вместе :)  (Прочитано 72696 раз)
0 Пользователей и 1 Гость смотрят эту тему.
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #90 : 30-12-2008 10:33 » 

ролик, потом выложите посмотрим.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #91 : 30-12-2008 12:07 » 

Алексей, когда делать-то начнем?

У меня уже почти похоже на игру Улыбаюсь
Осталось ИИ добавить, можно еще взрывы и анимацию.

тебе говорить просто, ты студент, у тебя навалом времени и уже есть опыт в DX . А у меня лишь общий обзор, я только разбираюсь с основами DX )) И времени немного. Вот сегодня работали последний день, теперь постараюсь побыстрее.
Сейчас делаю проект с кубиком Рубика, без АИ, но ещё также всё в самом начале - я даже до математики ещё не дошёл
Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #92 : 30-12-2008 14:15 » 

Какая там математика? Вектор на матрицу умножить, что ли))
Присоединяйся лучше, быстрее изучишь и я объясню, если что.
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #93 : 30-12-2008 15:02 » 

Антон__, под математикой я имею в виду ту часть, где идёт работа с видимыми 3D объектами ))

А помогать тебе будет трудно, если ты не улучшишь свой стиль программирования и будешь продолжать всё делать в 2008 студии Улыбаюсь Так как я просто не могу скомпилировать твои проекты
Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #94 : 30-12-2008 15:34 » 

Студия - это ерунда, главное я могу твои проекты компилировать, а там разберемся:)

Говори конкретнее, что не нравится, кроме глобальных переменных.
И попробуй создать пустое окошко без mfc, так как мои у тебя не компилятся.
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #95 : 30-12-2008 15:50 » 

Антон__, не нравится чистоа АПИ Улыбаюсь Не хочется тратить силы на рутину.
Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #96 : 30-12-2008 15:56 » 

Антон__, не нравится чистоа АПИ
То есть?
Не хочется тратить силы на рутину.
Лень написать 20 строчек Улыбаюсь
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #97 : 30-12-2008 16:13 » 

Антон__, да, лень Улыбаюсь А зачем ? Если это по тычку сделает визард Улыбаюсь То же самое всё сделает, заметь
Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #98 : 30-12-2008 16:17 » 

>Зачем?
Потому что не надо всё усложнять.Улыбаюсь

У тебя запускаются примеры из директа?
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #99 : 30-12-2008 16:24 » 

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

Примеры я не устанавливал, но нашёл в папке утилиты с исходниками, там солюшены лежат оба - 2005 и 2008. Компилится и запускается 2005, успешно
------------------


вопрос по теме такой:
проблемка возникла с IDirect3DSurface9::UpdateSurface , если размер картинки больше, чем размер поверхности-приёмника, то вертается ошибка D3DERR_INVALIDCALL , а хотелось бы видеть просто обрезанную картинку. Что тут не так ?
Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #100 : 30-12-2008 16:47 » 

Алексей, так мы не договоримся. Улыбаюсь
Попробуй скомпилировать файлик.
Про IDirect3DSurface9 не знаю, я этим не пользовался.

* main.cpp (1.7 Кб - загружено 333 раз.)
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #101 : 30-12-2008 16:52 » 

Offtopic:

Пацаны! Договаривайтесь!
Проект в студию Улыбаюсь
Поставлю в угол.

Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #102 : 30-12-2008 17:03 » 

Sla, а ты не хочешь присоединиться?

* project2.rar (80.15 Кб - загружено 290 раз.)
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #103 : 30-12-2008 17:17 » 

Антон__, не... Я на С и ему подобное гавкаю, к сожалению. У меня другая специфика
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #104 : 30-12-2008 17:22 » 

Антон, после некоторых манипуляций со строками (грёбаный юникод ))) ) скомпилировалось

Слав, Антон пусть пока показывает, а  у меня ещё ничего не готово )
Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #105 : 30-12-2008 17:29 » 

Алексей, случайно не character set -> no set?
Мне иногда только это помогало:)

Можешь сказать, какая у тебя студия и видеокарта.
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #106 : 30-12-2008 17:44 » 

не знаю, про какое ты "character set -> no set" , я просто сделал:

   LPCWSTR name = L"window name";

студия - 2005 , видюха GeForce 6800
Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #107 : 30-12-2008 18:52 » 

2005 pro, express? Или они не особо отличаются.
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #108 : 30-12-2008 19:17 » 

pro
Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #109 : 31-12-2008 10:29 » 

Поставил я себе 2005-й раритет Улыбаюсь
Воот  http://slil.ru/26499080.
Файлы с мешами кидать на D:\\
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #110 : 31-12-2008 11:52 » 

Антох, у тебя это работает ?

Лично у меня рушится всё, даже не заходя в WinNain, а значит - где то ещё при создании какой то из глобальных переменных, я ещё не понял, какой именно.

но уже настораживает это
Код:
struct Player:Unit
{
static DWORD numMaterials;
static ID3DXMesh* mesh;
static D3DMATERIAL9* materials;
static LPDIRECT3DTEXTURE9* textures;

Player();
void Show();
void Create();
void Move();
void Shoot(int x, int y);
};

struct Enemy:Unit
{
static DWORD numMaterials;
static ID3DXMesh* mesh;
static D3DMATERIAL9* materials;
static LPDIRECT3DTEXTURE9* textures;
D3DXVECTOR3 target, dest; //куда стрелять и куда идти
bool selected;
float t1,t2;

Enemy();
void Show();
void Create();
void Move();
void Shoot();
};

struct Bullet:Unit
{
static DWORD numMaterials;
static ID3DXMesh* mesh;
static D3DMATERIAL9* materials;
static LPDIRECT3DTEXTURE9* textures;

float damage;
D3DXVECTOR3 target;
bool active;
Bullet();
void Create();
void Show();
void Move();
};

ЗАЧЕМ ЧЛЕНЫ-ПЕРЕМЕННЫЕ СТАТИЧЕСКИЕ ??

ЗАЧЕМ extern ??
Код:
extern IDirect3D9* pD3D;
extern IDirect3DDevice9* pDevice;
extern ID3DXFont* FPSfont;
extern HWND hWnd;
extern Terrain terrain;
extern Player player;
extern Camera camera;
extern Enemy enemy[10];
extern Bullet bullet[1000];
extern Sky sky;


вообще говоря, изза статиков, уже вот это должно сломаться
Enemy enemy[10];
extern Bullet bullet[1000];
Записан

Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #111 : 31-12-2008 11:59 » 

релиз не запустился, требует d3dx9_40.dll , я такой у себя вообще не нашёл )
Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #112 : 31-12-2008 12:23 » 

Работает, Лёха.
Статик там потому, что для всех врагов создаётся один меш.
Ектстерн - для других срр.
Попробуй убрать что-нибудь, может поможет.
Или вот это:
Код:
ID3DXMesh* Player::mesh(0);
DWORD Player::numMaterials(0);
D3DMATERIAL9* Player::materials(0);
LPDIRECT3DTEXTURE9* Player::textures(0);

ID3DXMesh* Enemy::mesh(0);
DWORD Enemy::numMaterials(0);
D3DMATERIAL9* Enemy::materials(0);
LPDIRECT3DTEXTURE9* Enemy::textures(0);

ID3DXMesh* Bullet::mesh(0);
DWORD Bullet::numMaterials(0);
D3DMATERIAL9* Bullet::materials(0);
LPDIRECT3DTEXTURE9* Bullet::textures(0);
Поставь перед этим:
Код:
Enemy enemy[10];
Bullet bullet[1000];
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #113 : 31-12-2008 12:45 » 

да хоть меш там, хоть что, не стОит так играться со статиком. Да и не гибко так.

я бы на твоём месте объявил структуру вроде
Код:
struct s_ObjectMesh
{
DWORD numMaterials;
ID3DXMesh* mesh;
D3DMATERIAL9* materials;
LPDIRECT3DTEXTURE9* textures;
};

в деструкторе которой делал бы чистку интерфейсов.
Все юниты произвёл бы от этой структуры или, на крайний случай, добавил бы один указатель (не статический) на экземпляр структуры.
Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #114 : 31-12-2008 13:07 » 

Блин, чем тебе статик-то не угодил? Улыбаюсь

Можно и s_ObjectMesh сделать, и каждому по указателю выдать.
Но переделывать я не буду - слишком долго, пока продолжу дальше делать через то, что делал))
А когда изучу что хотел - начну новый проект, вот там всё нормально будет, надеюсь.
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #115 : 31-12-2008 13:16 » 

для тестов и так сойдёт, а потом, конечно, делай сразу удобно ) Ещё по ООП почитай что нибудь

а статик не угодил много чем. К примеру, метод Create у тебя меняет значение переменной класса
class CMyClass
{
  static int X;
 
  bool Create(...)
  {
     ...
     X=...;
     ...
  }
};

всё работает, всё ок. А потом как-то гдето тебе временно понадобилось для каких то целей создать объект CMyClass - и всё, приехали, X поменялась для всех объектов в программе. Упс Улыбаюсь
Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #116 : 31-12-2008 13:28 » 

Тут ты неправ.
Если бы я функцию Create запихнул в конструктор, то да.
Эта функция изменяет только 4 статика для меша и я её вызываю один раз. А если её вызвать еще раз, то в лучшем случае потеряю немного памяти.

А вот про ООП не откажусь почитать что-нибудь. На первом курсе я прошел Страуструпа, сейчас занимаемся по Гербу Саттеру "решение сложных задач на С++".
Посоветуешь что-нибудь этого уровня?
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #117 : 31-12-2008 14:15 » 

Цитата
А если её вызвать еще раз, то в лучшем случае потеряю немного памяти
а тут точно ты не прав, это никогда неприемлимо. И если понимаешь, что это тонкое место, сделай всё, чтобы вероятность этого события была близка к нулю, например

Create()
{
  if(указатель!=0)throw 0;//ну или предупреждение для дебага

  //дальше
  //...
};

посоветовать, что читать не знаю, но Страуструп - это уже хорошо )
Записан

Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #118 : 31-12-2008 16:12 » 

Ладно, не буду спорить))
Я хочу еще добавить в проект возможность крутить камеру мышкой и анимацию юнитов.
Не хочешь взять последнее?
Записан
Антон__
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #119 : 31-12-2008 16:13 » 

Всех с новым годом! Улыбаюсь
Записан
Страниц: 1 2 3 [4] 5   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines