McZim
|
|
« Ответ #90 : 30-12-2008 10:33 » |
|
ролик, потом выложите посмотрим.
|
|
|
Записан
|
The CBO without stats is like a morning without coffee. (c) T.Kyte.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #91 : 30-12-2008 12:07 » |
|
Алексей, когда делать-то начнем? У меня уже почти похоже на игру Осталось ИИ добавить, можно еще взрывы и анимацию. тебе говорить просто, ты студент, у тебя навалом времени и уже есть опыт в DX . А у меня лишь общий обзор, я только разбираюсь с основами DX )) И времени немного. Вот сегодня работали последний день, теперь постараюсь побыстрее. Сейчас делаю проект с кубиком Рубика, без АИ, но ещё также всё в самом начале - я даже до математики ещё не дошёл
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #92 : 30-12-2008 14:15 » |
|
Какая там математика? Вектор на матрицу умножить, что ли)) Присоединяйся лучше, быстрее изучишь и я объясню, если что.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #93 : 30-12-2008 15:02 » |
|
Антон__, под математикой я имею в виду ту часть, где идёт работа с видимыми 3D объектами )) А помогать тебе будет трудно, если ты не улучшишь свой стиль программирования и будешь продолжать всё делать в 2008 студии Так как я просто не могу скомпилировать твои проекты
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #94 : 30-12-2008 15:34 » |
|
Студия - это ерунда, главное я могу твои проекты компилировать, а там разберемся:)
Говори конкретнее, что не нравится, кроме глобальных переменных. И попробуй создать пустое окошко без mfc, так как мои у тебя не компилятся.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #95 : 30-12-2008 15:50 » |
|
Антон__, не нравится чистоа АПИ Не хочется тратить силы на рутину.
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #96 : 30-12-2008 15:56 » |
|
Антон__, не нравится чистоа АПИ
То есть? Не хочется тратить силы на рутину.
Лень написать 20 строчек
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #97 : 30-12-2008 16:13 » |
|
Антон__, да, лень А зачем ? Если это по тычку сделает визард То же самое всё сделает, заметь
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #98 : 30-12-2008 16:17 » |
|
>Зачем? Потому что не надо всё усложнять. У тебя запускаются примеры из директа?
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #99 : 30-12-2008 16:24 » |
|
Потому что не надо всё усложнять. сам себе противоречишь Спорить, кстати, не собираюсь и такие вопросы буду просто игнорировать Примеры я не устанавливал, но нашёл в папке утилиты с исходниками, там солюшены лежат оба - 2005 и 2008. Компилится и запускается 2005, успешно ------------------ вопрос по теме такой: проблемка возникла с IDirect3DSurface9::UpdateSurface , если размер картинки больше, чем размер поверхности-приёмника, то вертается ошибка D3DERR_INVALIDCALL , а хотелось бы видеть просто обрезанную картинку. Что тут не так ?
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #100 : 30-12-2008 16:47 » |
|
Алексей, так мы не договоримся. Попробуй скомпилировать файлик. Про IDirect3DSurface9 не знаю, я этим не пользовался.
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #101 : 30-12-2008 16:52 » |
|
Offtopic: Пацаны! Договаривайтесь! Проект в студию Поставлю в угол.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Антон__
|
|
« Ответ #102 : 30-12-2008 17:03 » |
|
Sla, а ты не хочешь присоединиться?
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #103 : 30-12-2008 17:17 » |
|
Антон__, не... Я на С и ему подобное гавкаю, к сожалению. У меня другая специфика
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #104 : 30-12-2008 17:22 » |
|
Антон, после некоторых манипуляций со строками (грёбаный юникод ))) ) скомпилировалось
Слав, Антон пусть пока показывает, а у меня ещё ничего не готово )
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #105 : 30-12-2008 17:29 » |
|
Алексей, случайно не character set -> no set? Мне иногда только это помогало:)
Можешь сказать, какая у тебя студия и видеокарта.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #106 : 30-12-2008 17:44 » |
|
не знаю, про какое ты "character set -> no set" , я просто сделал:
LPCWSTR name = L"window name";
студия - 2005 , видюха GeForce 6800
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #107 : 30-12-2008 18:52 » |
|
2005 pro, express? Или они не особо отличаются.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #108 : 30-12-2008 19:17 » |
|
pro
|
|
|
Записан
|
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
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];
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #111 : 31-12-2008 11:59 » |
|
релиз не запустился, требует d3dx9_40.dll , я такой у себя вообще не нашёл )
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #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];
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #113 : 31-12-2008 12:45 » |
|
да хоть меш там, хоть что, не стОит так играться со статиком. Да и не гибко так. я бы на твоём месте объявил структуру вроде struct s_ObjectMesh { DWORD numMaterials; ID3DXMesh* mesh; D3DMATERIAL9* materials; LPDIRECT3DTEXTURE9* textures; };
в деструкторе которой делал бы чистку интерфейсов. Все юниты произвёл бы от этой структуры или, на крайний случай, добавил бы один указатель (не статический) на экземпляр структуры.
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #114 : 31-12-2008 13:07 » |
|
Блин, чем тебе статик-то не угодил? Можно и s_ObjectMesh сделать, и каждому по указателю выдать. Но переделывать я не буду - слишком долго, пока продолжу дальше делать через то, что делал)) А когда изучу что хотел - начну новый проект, вот там всё нормально будет, надеюсь.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #115 : 31-12-2008 13:16 » |
|
для тестов и так сойдёт, а потом, конечно, делай сразу удобно ) Ещё по ООП почитай что нибудь а статик не угодил много чем. К примеру, метод Create у тебя меняет значение переменной класса class CMyClass { static int X; bool Create(...) { ... X=...; ... } }; всё работает, всё ок. А потом как-то гдето тебе временно понадобилось для каких то целей создать объект CMyClass - и всё, приехали, X поменялась для всех объектов в программе. Упс
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #116 : 31-12-2008 13:28 » |
|
Тут ты неправ. Если бы я функцию Create запихнул в конструктор, то да. Эта функция изменяет только 4 статика для меша и я её вызываю один раз. А если её вызвать еще раз, то в лучшем случае потеряю немного памяти.
А вот про ООП не откажусь почитать что-нибудь. На первом курсе я прошел Страуструпа, сейчас занимаемся по Гербу Саттеру "решение сложных задач на С++". Посоветуешь что-нибудь этого уровня?
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #117 : 31-12-2008 14:15 » |
|
А если её вызвать еще раз, то в лучшем случае потеряю немного памяти
а тут точно ты не прав, это никогда неприемлимо. И если понимаешь, что это тонкое место, сделай всё, чтобы вероятность этого события была близка к нулю, например Create() { if(указатель!=0)throw 0;//ну или предупреждение для дебага //дальше //... }; посоветовать, что читать не знаю, но Страуструп - это уже хорошо )
|
|
|
Записан
|
|
|
|
Антон__
|
|
« Ответ #118 : 31-12-2008 16:12 » |
|
Ладно, не буду спорить)) Я хочу еще добавить в проект возможность крутить камеру мышкой и анимацию юнитов. Не хочешь взять последнее?
|
|
|
Записан
|
|
|
|
|
|