Посмотрите игруху

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

Модератор: BV

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 29.12.2004 (Ср) 12:40

Что-то насчет памяти не понял, к чему это?


Это о "прелестях" BitBlt

Хех, BitBlt forever :wink:


Ок будем переписывать :twisted:

А теперь такой вопрос: если мой комп будет в три раза мощнее твоего, игра будет летать? Или скорость игры не зависит от скорости компа? Если не зависит, то как ты этого добился?


Нет. Да. Фокус.


1. Запускаю игру - норма. Если изменить config.cfg вручную - тоже. Запускаем настраивальщик и двигаем баунсинг. Затем запускаю игру и...


Из темы про отладку прог:
У меня всё ок, а у пользователя на другом конце земли... достаточно дыхнуть на клаву.

:)

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


См. цитату выше :roll:

ЗЫ наверное было бы лучше, если написать win а не wo


Ну типа тоГо :roll:


Итак любители BitBlt... :twisted:
У меня к вам вопрос :twisted:

Код: Выделить всё
Public Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Const SRCCOPY = &HCC0020

Private Sub mnuNewGame_Click()
BitBlt picGame.hDC, 1, 1, 32, 32, p.hDC, 1, 1, SRCCOPY
End Sub


Рисует чёрный квадрат :cry:
Что я делаю не так :?:
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 29.12.2004 (Ср) 12:45

Зависит от того, чё это за picGame и p.
SRCCOPY можно не объявлять. Есть vbSrcCopy.

А вообще, я за DX :wink:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 29.12.2004 (Ср) 13:18

Так я что-то не понял, как ты добился одинаковой скорости на разных компах? Ты сказал фокус... В смысле, Focus? Или типа "магия" :D
А то мой замедлитель чегой-то глючит под ХР. А во всех остальных виндах - норма.........
Да, насчет твоего вопроса - скинь весь проект мне на мыло на мыло. А то есть у меня подозрения насчет причин неработоспособности........
[url]mailto:r.aristov_s.mail@nm.ru[/url]

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 29.12.2004 (Ср) 13:22

Ariman, игры, скорость которых зависит от скорости компа, перестали писать уже примерно 15 лет как :) Так что фокус-то, видимо, общеизвестный... Кстати, тебе же предалагали вариант, но ты сказал, что очень много переписывать :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 29.12.2004 (Ср) 13:28

Так я хочу узнать, каким способом он пользовался!

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 29.12.2004 (Ср) 14:03

Зависит от того, чё это за picGame и p.
SRCCOPY можно не объявлять. Есть vbSrcCopy


picGame - простой пикчур бокс- игровое поле
P - тоже простой пикчурбокс, в image стоит имага (исходно иконка)
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 29.12.2004 (Ср) 14:10

И все же скинь исходник.

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 29.12.2004 (Ср) 14:17

В общем, autoredraw должно быть true.

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 29.12.2004 (Ср) 15:27

Константа SRCCOPY - неправильна!
С vbSrcCopy - гуд

И все же скинь исходник.


А можно подпрыгнуть? :wink:

Так я хочу узнать, каким способом он пользовался!


Способв дофига! Сторонникам BitBlt - супер дупер крутой компонент, который Micro$oft прятала от пользователей Timer!!!
Люди отягощенные DirectX пользуют синхронизацию по Time$ (если игруха в модуле) и в свободное время BltFast/BltFx
Поклонники доса вешаются на первое и девятое прирывание :)

А вообще, я за DX :wink:


DX - форрева! :D
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)

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

Сообщение Tin » 29.12.2004 (Ср) 15:45

И ещё такой вопрос - почему шар толкающий в левую сторону толкает сильнее? КАК ЭТО СДЕЛАТЬ: :)

ставим один шар с лева, другой с права (паралельно желательно) и у одного жмем в право у другого в лево.. шары сталкиваются и шар находящийся с права ВСЕГДА утаскивает левого....
888888__88__88____88
__88________8888__88
__88____88__88__8888
__88____88__88____88

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 29.12.2004 (Ср) 17:17

Я уже заметил когда делал ограничение скорости!!!
:shock: :shock: :shock: :shock: :shock:
Сам незнаю почему!!!

З.ы. вопросик по bitblt:
как сделать чтоб лишнее не блитилось? к примеру при приближении двух шаров на "нижний" находит "тень" :)
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 29.12.2004 (Ср) 21:20

Хм, трудно было исходник кинуть. Не уж-то два пикче бокса на форме - это такая ценность, что распространять боязно? :wink:

Сторонникам BitBlt - супер дупер крутой компонент, который Micro$oft прятала от пользователей Timer!!!


Какой компонент? Ты о чем?

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 29.12.2004 (Ср) 22:25

Хм, трудно было исходник кинуть. Не уж-то два пикче бокса на форме - это такая ценность, что распространять боязно?


Ты о чем?
Кстати о BitBlt ну заблитил и по маске обрезал...
Тока мелькает всё. Решил делать как сказано в переводе статьи по BitBlt - собирать в hdc памяти... или как там...
Ничего не работает!? Без ошибок но видимово результата нет...
А исходы не дам :twisted: Я жадный :)

Сформулирую по другому:
Сторонникам BitBlt - супер дупер крутой компонент, который Micro$oft прятала от пользователей - Timer!!!
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 29.12.2004 (Ср) 23:37

Постой-постой, ты что, решил, что я у тебя прошу исходники твоей игры?Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!? :D :lol: :D
Я ж не о том говорю :D :D :D
Когда ты говорил, что у тебя BitBlt не работает, я подумал, что ты отдельно проектик создал - форма, кнопка и два PictureBox для теста!
Вот и просил тебя его скинуть, посмотреть, что ты там не так делаешь!
Поэтому-то и удивился, когда ты не захотел его скинуть!!

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 29.12.2004 (Ср) 23:42

Насчет таймера... Хм, а сам-то чего его не используешь??? Аль используешь ? :shock:
Ты что, имеешь ввиду, что все, что у меня в главном цикле мне запихнуть в таймер? Скорость будет, я тебе скажу, просто АХОВАЯ!
Не, конечно, если только блитить два объекта на черный фон, может и хватит..... Но вот когда у меня около 5.5к строк кода.............. Не пойдет.
А теперь по существу: где ты не собирай, мерцать будет, если
1) на целевом объекте стоит AUTOREDRAW=FALSE
2) очищаешь экран не до, а после выведения объектов :D
3) медленно обновляешь

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 29.12.2004 (Ср) 23:47

Собирать в памяти, это конечно, хорошо... Но у меня и без этого не мерцало. Я в невидимый picture при загузке потайлово блитил карту, а потом уже на форму сначала блитил из того picutre уже загруженную крту, целиком, аотом - все объекты. И не мерцало....

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 29.12.2004 (Ср) 23:52

Естетсвенно у тебя будет квадрат.
Для прозрачности нужно 2 bitblt-а.
Сначала MERGEPAINT, затем SRCAND.
Для наглядности мог приложить пример, но ведь 21 век на дворе и я не могу выложить пример из-за глюков форума.

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 30.12.2004 (Чт) 0:11

MERGEPAINT?
А не vbSrcInvert?

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 30.12.2004 (Чт) 15:09

Ой вас так много и все такие знающие!
Короче я уже сам разузнал как "обрезать" по маске. Я уж написал BitBltT для энтого.
Ariman я правды нетого подумал...
Но проджект который я создал не имеет смысл передавать.
"Но у меня и без этого не мерцало."
Может у тебя и с этим мерцало? :)
Странно... когда я собирал на рабочем видимом имаге и копировал область по размерам совпадающим с игровым полем... получался аналог принтскрин + наблитиные спрайты ...
А когда я его хайдил тока принтскрин :)
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 30.12.2004 (Чт) 17:23

Мммм...
Поставил я AutoRedraw пикчуре...
Ваще теперь ничего нет...
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 30.12.2004 (Чт) 21:37

Двай я сделаю примерчик(ну, этот пресловутый проект с двумя пикчерами и кнопкой :wink: ) и скину его тебе на мыло?

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 30.12.2004 (Чт) 23:14

Если можно...
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)

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

Сообщение Tin » 06.01.2005 (Чт) 20:46

Кста, как проблему с ауторедроу решать?
Вообщем сначало (ар=труе) при загрузке формы рисуется "пейзаж". Потом в таймере пейзаж должен видоизмениться, но при ар=труе нифига не рисует, при фэлсе рисует...
888888__88__88____88
__88________8888__88
__88____88__88__8888
__88____88__88____88

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 06.01.2005 (Чт) 20:56

Tin писал(а):Кста, как проблему с ауторедроу решать?
Вообщем сначало (ар=труе) при загрузке формы рисуется "пейзаж". Потом в таймере пейзаж должен видоизмениться, но при ар=труе нифига не рисует, при фэлсе рисует...


Вот именно!
Ariman... ?
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.01.2005 (Чт) 21:48

Как рисуете-то? BitBlt-ом, поди? ;-)
Изображение

SeRRg
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 343
Зарегистрирован: 25.11.2003 (Вт) 20:14
Откуда: Тюмень!

Сообщение SeRRg » 06.01.2005 (Чт) 22:40

Как только запустил, появилась такая же ошибка как и у Amed'а Причем за 5 минут она вылезла аж три раза.
Напрягает...
VB - это звучит!

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 07.01.2005 (Пт) 0:40

tyomitch писал(а):Как рисуете-то? BitBlt-ом, поди? ;-)


Ага!
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.01.2005 (Пт) 1:16

Тогда .Refresh вызывайте, как только отблитите - прорисуется ;-)
Изображение

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 07.01.2005 (Пт) 14:46

tyomitch писал(а):Тогда .Refresh вызывайте, как только отблитите - прорисуется ;-)


Ага :( Я уже до этого догадался...
С блитингом я уже справился... не мерцает :P
Тока если спрятать пикчурбокс со спрайтами или поместить за пределы формы... в лучшем случае блитится кусок кода из окна VB :(
Как безболезненно скрыть ненужное?
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 07.01.2005 (Пт) 15:36

[off]Ну почему, почему БЛИТ?? БЭ-ЭЛ-ТЭ ведь! :roll: [/off]

Пред.След.

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

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

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

    TopList