Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 2D-программирование

2D-программирование Вопросы, касающиеся двумерного программирования

Ответ
 
Опции темы
Старый 14.11.2007, 02:26   #1
ARA
ТЫ ЧООО?
 
Аватар для ARA
 
Регистрация: 26.02.2007
Сообщений: 3,369
Написано 2,020 полезных сообщений
(для 7,192 пользователей)
Сообщение Проблема с коллизиями стандартных images

Привет всем!
Решил парабатить мир арканоидом :D
Споткнулся на неприятности:
Когда мячик летит в правый нижний угол, то он не ударяется об рокетку, а пролетает сквозь неё.
Может кто заметит ошибку (я так лично весь код прошерстил ни один раз)
Заранее спасибо.
Исходник шедевра брать ацуда: www.mirage-lab.com/help.rar
(23КБ)
__________________
Вертекс в глаз или в пиксель раз?
(Offline)
 
Ответить с цитированием
Старый 15.11.2007, 01:57   #2
ARA
ТЫ ЧООО?
 
Аватар для ARA
 
Регистрация: 26.02.2007
Сообщений: 3,369
Написано 2,020 полезных сообщений
(для 7,192 пользователей)
Сообщение Re: Проблема с коллизиями стандартных images

Ребят, помогите начинающему прогеру) плиииз
__________________
Вертекс в глаз или в пиксель раз?
(Offline)
 
Ответить с цитированием
Старый 15.11.2007, 02:08   #3
Pixel
Нуждающийся
 
Регистрация: 25.02.2007
Сообщений: 58
Написано 3 полезных сообщений
(для 6 пользователей)
Смех Re: Проблема с коллизиями стандартных images

Я в многих ping-pong'ах такую траблу видел
Мож это поможет ? см. аттач.
(Offline)
 
Ответить с цитированием
Старый 15.11.2007, 14:19   #4
ARA
ТЫ ЧООО?
 
Аватар для ARA
 
Регистрация: 26.02.2007
Сообщений: 3,369
Написано 2,020 полезных сообщений
(для 7,192 пользователей)
Сообщение Re: Проблема с коллизиями стандартных images

Спасибо конечно, но охото узнать в чём проблема в 2d.
__________________
Вертекс в глаз или в пиксель раз?
(Offline)
 
Ответить с цитированием
Старый 15.11.2007, 22:34   #5
jimon
 
Сообщений: n/a
Re: Проблема с коллизиями стандартных images

ballposy>player\posX
имхо в етом проблемма
 
Ответить с цитированием
Старый 16.11.2007, 00:42   #6
ARA
ТЫ ЧООО?
 
Аватар для ARA
 
Регистрация: 26.02.2007
Сообщений: 3,369
Написано 2,020 полезных сообщений
(для 7,192 пользователей)
Сообщение Re: Проблема с коллизиями стандартных images

Ай спасибо тебе!
__________________
Вертекс в глаз или в пиксель раз?
(Offline)
 
Ответить с цитированием
Старый 05.08.2008, 17:33   #7
Spiderman
Знающий
 
Аватар для Spiderman
 
Регистрация: 28.07.2008
Адрес: Киев
Сообщений: 228
Написано 61 полезных сообщений
(для 191 пользователей)
Ответ: Проблема с коллизиями стандартных images

Люди, помогите с коллизиями изображений!

Создаю шпилу в двухмерке, использую сразу несколько вариантов коллизий картинок т.е. ImagesOverlap, ImagesOverlap но столкнулся с ацкой проблемой и не хочу перелапачивать сотни строк кода. Может как-то по-простому решается.

Мне надо сделать, чтобы часть картинок на экране не отображалась (оформлено типом images) [я по умному нужной части изображений просто не делаю DrawImage] вот только ацкие коллизии срабатывают... потому что картинка то остается и ее координаты тоже.

Как избавится от ацкой коллизии?
__________________
Тяжела жизнь программиста: радость находки своего бага всегда омрачает осознание собственной тупости...
(Offline)
 
Ответить с цитированием
Старый 05.08.2008, 17:48   #8
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Проблема с коллизиями стандартных images

if ImagesOverlap(блаблабла)

замени на

if ImagesOverlap(блаблабла) and УСЛОВИЕ_ОТОБРАЖЕНИЯ_МЯЧА
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Spiderman (05.08.2008)
Старый 05.08.2008, 18:58   #9
Spiderman
Знающий
 
Аватар для Spiderman
 
Регистрация: 28.07.2008
Адрес: Киев
Сообщений: 228
Написано 61 полезных сообщений
(для 191 пользователей)
Ответ: Проблема с коллизиями стандартных images

ага что-то вроде конструкции
только все равно много всего изменять (много коллизий как назло в моей аркаде)

if ImagesOverlap(блаблабла) and image\visible=true

спс.
__________________
Тяжела жизнь программиста: радость находки своего бага всегда омрачает осознание собственной тупости...
(Offline)
 
Ответить с цитированием
Старый 06.08.2008, 14:00   #10
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Ответ: Проблема с коллизиями стандартных images

все таки лучше написать так:
if image\visible=true and ImagesOverlap(блаблабла)
сначало проверится первое условие, и если оно истинно то проверится второе. Так можно съэоконить время на проверки
(Offline)
 
Ответить с цитированием
Старый 06.08.2008, 14:39   #11
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Проблема с коллизиями стандартных images

Const n=1000

For i=1 To 10000
	MegaFunc()
Next

gh=MilliSecs()

SeedRnd gh
a=MilliSecs()
h=0
For i=1 To n
	If (i Mod 3 = 2 ) And MegaFunc()=1 Then h=h+1
Next
Print "h="+Str(h)+"1:"+Str(MilliSecs()-a)

SeedRnd gh
a=MilliSecs()
h=0
For i=1 To n
	If MegaFunc()=1 And (i Mod 3 = 2 ) Then h=h+1
Next
Print "h="+Str(h)+"2:"+Str(MilliSecs()-a)

SeedRnd gh
a=MilliSecs()
h=0
For i=1 To n
	If (i Mod 3 = 2 )
		If MegaFunc()=1 Then h=h+1
	EndIf
Next
Print "h="+Str(h)+"3:"+Str(MilliSecs()-a)


SeedRnd gh
a=MilliSecs()
h=0
For i=1 To n
	If (MegaFunc()=1)
		If i Mod 3 = 2  Then h=h+1
	EndIf
Next
Print "h="+Str(h)+"4:"+Str(MilliSecs()-a)


Function MegaFunc()
	s#=2
	For i=1 To 100
		s#=s+s^s*Sin(s)-(Sqr(Cos(s)+Tan(s))-1.618)^2
	Next
	
	Return Rand(0,1)
End Function

WaitKey
(Offline)
 
Ответить с цитированием
Старый 06.08.2008, 16:20   #12
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Ответ: Проблема с коллизиями стандартных images

h=163 1:1360
h=163 2:1380
h=175 3:450
h=163 4:1362

что это?
Edit:
аа, спасибо, понял . Очевидно что 3-й вариант проверки лучший.
(Offline)
 
Ответить с цитированием
Старый 06.08.2008, 16:38   #13
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Проблема с коллизиями стандартных images

Да, это я собственно к тому - что блиц не C++, и он обрабатывает ВСЕ операнды в условии, и только потом выдает результат.
т.е. в блице:
if false and MegaFunc()
мегафунк вызовится
в С++
if(0 && MegaFunc())
мегафунк не вызовится

важно понимать что сначала нужно проверять на самые быстрые условия и самые редко случающиееся.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
пролема с коллизиями christian [I <3 Blitz3D] 3D-программирование 9 09.02.2009 19:50
Spacer II. Images johnk Работы 16 26.12.2007 20:28
Помогите с коллизиями klopmaks Blitz3D 4 22.10.2007 11:28
Помогите разобраться, с PHP script and images QIP-icq status for yours web NightElf_Hunter Болтовня 10 09.05.2007 11:54
Переназначение кода стандартных ф-ций impersonalis FAQ 1 20.11.2005 23:06


Часовой пояс GMT +4, время: 04:59.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com