Crystals 2 - платформенная игра

Обсуждение проектов наших жителей.
Вы можете выставить проект на тест или найти помощников для его реализации.

Модератор: BV

Dec
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 24.01.2006 (Вт) 18:20

Crystals 2 - платформенная игра

Сообщение Dec » 24.01.2006 (Вт) 18:45

Прошу протестировать и оценить вот эту игру. Заранее всем спасибо :)
У вас нет доступа для просмотра вложений в этом сообщении.

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 24.01.2006 (Вт) 18:58

Забавненько ) Только слово Level допиши, и обьясни как по-нормальному уровни переключать? А так вроде багов не заметил.

Dec
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 24.01.2006 (Вт) 18:20

Сообщение Dec » 24.01.2006 (Вт) 19:08

2 GAGArin
Вообще, уровни нельзя будет менять, придется по порядку проходить. А пока - F5 следующий уровень.

GDC
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 260
Зарегистрирован: 03.10.2005 (Пн) 22:22
Откуда: MoScOw

Сообщение GDC » 24.01.2006 (Вт) 20:00

Я тут поиграл немного! И вопрос во втором уровне сверху где оружие лежит если туда прыгнуть уже назад не выдешь это так задумано или нет?
Народная былина:
Встретились на дысь двое пьянчуг, и начали они играть в пьяницу и была у них ничья...

Dec
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 24.01.2006 (Вт) 18:20

Сообщение Dec » 24.01.2006 (Вт) 20:29

во втором уровне сверху где оружие лежит если туда прыгнуть уже назад не выдешь это так задумано или нет?

Ага, задумано ;) Там еще на 3м и 5м (последнем пока) такое же будет ;)
И еще: там, где неизвестно что и написано "Danger", ничего хорошего нет :)

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 24.01.2006 (Вт) 20:34

На уровне со снегом-дикие тормоза :(
На чём делал? Через BitBlt/TransparentBlt, или на DirectX(сдаётся мне,что первое)?
Изображение

Dec
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 24.01.2006 (Вт) 18:20

Сообщение Dec » 24.01.2006 (Вт) 20:40

2 keks-n
На уровне со снегом-дикие тормоза

В основном из-за снега-то я и выложил, и мои опасения оправдались... Снег - самое слабое место. Он вообще GetPixel/SetPixel сделан. Тормозит, наверно, потому, что там снежинок пара тысяч :D

На чём делал? Через BitBlt/TransparentBlt, или на DirectX(сдаётся мне,что первое)?

Вообще, правильно сдается. Bitblt.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 24.01.2006 (Вт) 20:47

Я бы на твоём месте отрисовал анимацию снега отдельно, а потом его через BitBlt накладывал.
Изображение

Dec
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 24.01.2006 (Вт) 18:20

Сообщение Dec » 24.01.2006 (Вт) 20:50

P.S. А TransparentBlt - это где? :? В API Viewer нету, в ListAPI - тоже... (я пока новичок :) )

Dec
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 24.01.2006 (Вт) 18:20

Сообщение Dec » 24.01.2006 (Вт) 20:57

Я бы на твоём месте отрисовал анимацию снега отдельно, а потом его через BitBlt накладывал.

Не совсем понял. То есть все снежинки - "в одном файле", то бишь рисунке?.. А так можно? (в смысле, не будет ли хуже)
Я сейчас склоняюсь к варианту "снежинки побольше, их количество поменьше. И рисовать лишь те, которые видимы (т.е., как и надо было сделать :)"

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 24.01.2006 (Вт) 21:04

Ну можно и так(30х30, фигурные). А все снежинки в одном файле... Создаёшь кучу DC, при загрузке в каждый по кадру анимации, а потом их на экран, через BitBlt. У меня когда-то подобная проблема со звёздами была (bmp, разные, 36000), так там не тормозило. Правда я на DirectDraw7 делал...
Изображение

Dec
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 24.01.2006 (Вт) 18:20

Сообщение Dec » 24.01.2006 (Вт) 21:18

* открыл проект, пролистал модуль mSnow и испугался *

P.S. Чтобы выключить снег, надо убрать команду <#snow N> из файлов 3.txt и 5.txt (в папке levels)

Пойду переделывать снег. Сделаю, выложу.
Кстати, нашел баг:
Открываю игру. Играю некоторое время. Потом переключаюсь в другое приложение (Winamp) и жму какие-то кнопки на клавиатуре... Когда жму стрелки или пробел, герой в игре ходит и стреляет, хотя игра неактивна :lol: Знаю, почему, счас исправлю

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 24.01.2006 (Вт) 21:53

Через что нажатия ловишь? Get(Async)KeyState?
Изображение

GPP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 351
Зарегистрирован: 02.11.2005 (Ср) 8:02
Откуда: г.Невельск о.Сахалин

Сообщение GPP » 25.01.2006 (Ср) 8:03

Dec, приложение не закрывается через Игра->Выход. А так игруха прикольная! :!:
GPP(c) Gorlo Pavel Programming

Bonesnapper
Постоялец
Постоялец
 
Сообщения: 434
Зарегистрирован: 12.09.2004 (Вс) 15:39

Сообщение Bonesnapper » 25.01.2006 (Ср) 12:12

заметил чо во втором уровне желтые создания :)
ходят по воздуху не обращая внимание что под ними нет пола

Tin
Woodsman
Woodsman
Аватара пользователя
 
Сообщения: 1001
Зарегистрирован: 08.12.2001 (Сб) 11:00
Откуда: Kazakhstan

Сообщение Tin » 25.01.2006 (Ср) 12:22

Не понравилось только то, что проц вешает на 100%. Я бы движок все-таки переложил на что-нить другое...
888888__88__88____88
__88________8888__88
__88____88__88__8888
__88____88__88____88

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 25.01.2006 (Ср) 16:00

Tin
Любая игра с главным игровым циклом будет его так грузить.
Изображение

Dec
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 24.01.2006 (Вт) 18:20

Сообщение Dec » 25.01.2006 (Ср) 16:08

Не понравилось только то, что проц вешает на 100%

имхо через всякие таймеры будет гораздо хуже - этот вариант вообще не рассматривался))

с главным игровым циклом

А есть какая-нибудь альтернатива :?:

заметил чо во втором уровне желтые создания
ходят по воздуху не обращая внимание что под ними нет пола

Все правильно. Вообще, они должны были быть какими-нибудь летучими мышами, но я графику не нашел.

приложение не закрывается через Игра->Выход.

Да, точно... Как это я не заметил?.. Все исправлено :)

Через что нажатия ловишь? Get(Async)KeyState?

Да, GetAsyncKeyState

---------------------
А вообще, не считая снега, прога тормозит или нет?

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 25.01.2006 (Ср) 16:19

Dec писал(а):
с главным игровым циклом

А есть какая-нибудь альтернатива :?:

Таймер например...

Dec
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 24.01.2006 (Вт) 18:20

Сообщение Dec » 25.01.2006 (Ср) 16:32

Таймер например...

Таймер у меня вначале стоял вместе с Form_KeyDown. Потом я сменил Keydown на GetAsyncKeyState, и, когда я жал на кнопки, таймеры (ни один!) не работали. Да и срабатывают они не всегда...

...Я вот все думаю: как бы мне получше переделать снег?..
nothing is true

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 25.01.2006 (Ср) 16:38

Dec
С клавишами делай так:
Создай массив из 255 элементов boolean
При Form_KeyDown задавай элементу с номером, как ASCII код True
А по Form_KeyUp - False. Потом в главном цикле проверяешь нужное значение :) Тока в конце цикла DoEvents не забудь.
Изображение

Dec
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 24.01.2006 (Вт) 18:20

Сообщение Dec » 25.01.2006 (Ср) 17:05

2 keks-n
Спасибо!
Тока в конце цикла DoEvents не забудь.

А он там, кстати говоря, есть уже.

вот еще снег доделаю, и выложу обновление
nothing is true

Tin
Woodsman
Woodsman
Аватара пользователя
 
Сообщения: 1001
Зарегистрирован: 08.12.2001 (Сб) 11:00
Откуда: Kazakhstan

Сообщение Tin » 25.01.2006 (Ср) 17:30

И все-таки юзай таймер... Проц гретса очень быстро начинает и рёв Вулкана начинает закладывать уши...
888888__88__88____88
__88________8888__88
__88____88__88__8888
__88____88__88____88

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 25.01.2006 (Ср) 17:57

Лучше не таймер - он неточен, да и на тормозных машинах, где не успевает прорисоваться за цикл, могут пойти проблемы. Лучше ограничить FPS таким образом - опрашивать QueryPerformanceTimer и, если с прошлого кадра прошло меньше, скажем 30 мс, гонять в цикле DoEvents.
Dec
Прикольно сделано, просто, но с фантазией. На GameDev.ru не показывал?

GDC
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 260
Зарегистрирован: 03.10.2005 (Пн) 22:22
Откуда: MoScOw

Сообщение GDC » 25.01.2006 (Ср) 19:24

Все же по сюжету игры ты не прав это слишком жестоко!!!! Мне кажется если делать то не в таких количествах!
Ага, задумано Wink Там еще на 3м и 5м (последнем пока) такое же будет Wink
И еще: там, где неизвестно что и написано "Danger", ничего хорошего нет Smile
Народная былина:
Встретились на дысь двое пьянчуг, и начали они играть в пьяницу и была у них ничья...

Dec
Начинающий
Начинающий
 
Сообщения: 20
Зарегистрирован: 24.01.2006 (Вт) 18:20

Сообщение Dec » 25.01.2006 (Ср) 23:52

2 Mikle
Я примерно так и делаю:
Код: Выделить всё
Dim t#
Do
t=Timer
If Not Pause Then
  ... (прорисовка и т.д.)
End if
Do While t+0.1>Timer
  DoEvents 'это святое :)
Loop
Loop Until frmGameUnloaded


Нет, фантазии-то как раз тут маловато. Есть такая игра, Crystal Caves, я, каюсь, взял достаточно много из нее, сундуки там, некоторых врагов. Конечно, здесь все довольно-таки стандартное для таких игр, но все же... Кое-что, конечно, и сам придумал, но все же Crystals 2 написана под впечатлением Crystal Caves (название, кстати, не калька: просто игра - продолжение игры Crystals, которую я написал сто лет назад на QB, когда опыта у меня было маловато. Она уже не имеет к Crystal Caves никакого отношения.) Единственное, попытался сделать игру более интеллектуальной (Danger'ы там всякие, пропасти), чтобы игрок думал, прежде чем идти куда-то.

2 Tin
Нет, если я буду юзать таймер, то у меня, на моем аццки слабом компе, вообще не будет работать... Нет ему какой-нибудь приемлемой альтернативы? OCX может какой?

2 GDC
Все же по сюжету игры ты не прав это слишком жестоко!!!! Мне кажется если делать то не в таких количествах!

Если учесть, что всегда можно начать уровень (не игру!) заново (см. меню) сколько угодно раз без опасности проиграть, то все путем :D

P.S.
Вот, кому интересно. Называецца - почувствуйте разницу ;) Я засыпаю на 3м уровне.
У вас нет доступа для просмотра вложений в этом сообщении.
nothing is true

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 26.01.2006 (Чт) 11:40

Dec
А почему комната не вписывается в окно? Было бы понятно, если бы она была значительно больше, но так только мешает.
Меню (не заставка, а ниспадающее меню) слишком темное, или оно использует системные цвета, которые при стандартной схеме выгледят темновато.
Не понравилось, что есть "сортиры", откуда не выскочишь.
Я примерно так и делаю:

Отлично, только попробуй еще вместо Timer применить QueryPerformanceCounter, будет гораздо равномернее, по крайней мере там, где хватает быстродействия.

GDC
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 260
Зарегистрирован: 03.10.2005 (Пн) 22:22
Откуда: MoScOw

Сообщение GDC » 26.01.2006 (Чт) 15:54

Dec да вторая часть намного лучше, лично я дальше первого уровня не продвинулся!! Движок ужасный лол!!!! А по поводу начать заново уровень видел, но это мне не очень то и понравилось!!!! Интересней когда ограничено число начать заново уровень и сделать по меньше не проходимый части!!!!
Народная былина:
Встретились на дысь двое пьянчуг, и начали они играть в пьяницу и была у них ничья...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 26.01.2006 (Чт) 16:18

Dec
После DoEvents в цикл надо поставить Sleep 1, тады проц грузить не будет.
Изображение

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 26.01.2006 (Чт) 17:35

Нашел баг. Если нажать Ctrl R то патроны не обнуляются
Изображение

След.

Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList