Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 |

 

  Вопрос: >> ТРУДНАЯ ЗАДАЧА << Добавлено: 22.11.05 23:39  

Автор вопроса:  AgentFire | ICQ: 192496851 

Ответить

  Ответы Всего ответов: 45  

Номер ответа: 31
Автор ответа:
 Dushes



ICQ: 249195431 

Вопросов: 8
Ответов: 110
 Профиль | | #31 Добавлено: 28.11.05 16:01
А если серьезно, то вот справочник именно по физике игр - на английском, но просто написано:
http://us.f2.yahoofs.com/bc/412c1b28_16a12/bc/New.Riders.Beginning.Math.and.Physics.for.Game.Programmers.chm?bfNQwiDBuckJVbiG
Beginning Math and Physics for Game Programmers
Извините за такую ссылку, но просто все старые источники почему то не пашут =(...

Ответить

Номер ответа: 32
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #32 Добавлено: 28.11.05 17:16
Да и эта у меня не открывается...
Насчет танков - можно использовать в качестве расчетных моделей их ограничивающие ящики - пока, думаю, этого хватит. Что касается взаимодействия снарядов, такого я что-то нигде не встречал... хотя интерес вызывает. :)

Ответить

Номер ответа: 33
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #33 Добавлено: 28.11.05 18:14
про снаряды – это отдельная история, хотя и прикольная ;)
по сути они должны взрываться, но они реагируют друг на друга как бильярдные шары!

Ответить

Номер ответа: 34
Автор ответа:
 Dushes



ICQ: 249195431 

Вопросов: 8
Ответов: 110
 Профиль | | #34 Добавлено: 28.11.05 19:30
Извиняюсь за битую ссылку.
http://www.boolean.name/archive/files/physics2004.rar

Ответить

Номер ответа: 35
Автор ответа:
 Victor



ICQ: 345743490 

Вопросов: 42
Ответов: 385
 Web-сайт: vt-dbnz.narod.ru
 Профиль | | #35
Добавлено: 28.11.05 21:10
Хочешь сказать, что приближение танков прямоугольниками лучше, чем приближение кружками? Я бы просто сделал танки кружками, более-менее ложащиеся на прямоугольник.
Если уж на то пошло, что можно чделать танку монохромную маску (то бишь где он есть и уде его нет) и сканировать. Если два пикселя наложились - значит столкнулись. Но вот куда их разъезжать после этого - не знаю.

Ответить

Номер ответа: 36
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #36 Добавлено: 29.11.05 11:58
Нужно ведь в 3D столкновения просчитать - чтобы танк вел себя правдоподобно, если он упал со скалы на другой танк. А если этот танк лежит на боку? Полагаю, что лучше обойтись без маски, а сложные объекты составлять из нескольких ящиков.

Ответить

Номер ответа: 37
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #37 Добавлено: 29.11.05 12:48
Страшный Сон!
У меня 2D. Мне теперь нужно хотя-бы узнать, столкнулись они или нет. А куда двигать, это я разобрался. Разобрался не правильно, но всеже лучше чем ничего ;)

Ответить

Номер ответа: 38
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #38 Добавлено: 29.11.05 15:08
Предлагаю тогда такой вариант collision detection: составляешь из восьми точек два прямоугольника, ограничивающие танки, потом проверяешь принадлежность каждой точки одного прямоугольника другому. Если хотя бы одна из восьми точек принадлежит другому прямоугольнику, значит танки столкнулись. Могу дать код, определяющий принадлежность точки произвольному многоугольнику, если он тебе нужен.

Ответить

Номер ответа: 39
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #39 Добавлено: 29.11.05 16:46
[U][I][B]НУЖЕН!!![/B][/I][/U]

Ответить

Номер ответа: 40
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #40 Добавлено: 29.11.05 22:17
НУЖЕН!!!

Ответить

Номер ответа: 41
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #41 Добавлено: 30.11.05 17:06
Ну, грубо говоря, функция у меня есть такого типа:


Private Function IsPointInSector_Incl(ByVal X&, ByVal Y&, ByVal Sectnum&;) As Byte
Dim I&, R As Byte
For I = SECTOR(Sectnum).firstv To SECTOR(Sectnum).firstv + SECTOR(Sectnum).vertnum - 1
  With VERTEX(I)
    'D = 0
    If Abs(Dist(X, Y, VERTEX(.point2).X, VERTEX(.point2).Y) + Dist(X, Y, .X, .Y) - Dist(.X, .Y, VERTEX(.point2).X, VERTEX(.point2).Y)) < 1 Then R = 1: Exit For
    If X > Min(.X, VERTEX(.point2).X) Then
     If X <= Max(.X, VERTEX(.point2).X) Then
      If Y <= .Y + Int((VERTEX(.point2).Y - .Y) / (VERTEX(.point2).X - .X) * (X - .X)) Then
        R = 1 - R
        'D = 1
      End If
     End If
    End If
    'If .X = VERTEX(.point2).X And VERTEX(.point2).X = X Then R = 1 - R
  End With
Next I
IsPointInSector_Incl = R
End Function


Ее можно переделать под сектор (полигон с возможными дырками), передаваемый через аргумент, только мне что-то влом. Но думаю, что идея понятна. Функции Min, Max и Dist написать, думаю, труда не составит.

Ответить

Номер ответа: 42
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #42 Добавлено: 30.11.05 18:17
Ух ты, такое и в Страшном Сне не приснится ;)))

Стоп... А как секторы создавать? И Vertex'ы?

Ответить

Номер ответа: 43
Автор ответа:
 AASoft



Вопросов: 86
Ответов: 920
 Профиль | | #43 Добавлено: 30.11.05 21:34
@Noviks

a che slozhnogo v etom kode? pomoemu vse prosto:

prohodish po kazhdoj tochke i sravninaeshe koordinaty s kazhdoj tochkoj drugogo pryamougol`hika. esli vnutri->collision.

mozhno kstati ispol`zovat` IntersectRect API, no pomoemu ona tormoznutaya nemnogo.

Ответить

Номер ответа: 44
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #44 Добавлено: 30.11.05 21:59
Можно объявить сектор (полигон с дырками) примерно таким образом:

Type POLYGON
  Vertnum As Long
  Vrt() As VERTEX
End Type

Type VERTEX
  X As Long
  Y As Long
  Point2 As Long
End Type

Ответить

Номер ответа: 45
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #45 Добавлено: 01.12.05 16:56
prohodish po kazhdoj tochke i sravninaeshe koordinaty s kazhdoj tochkoj drugogo pryamougol`hika. esli vnutri->collision.
mozhno kstati ispol`zovat` IntersectRect API, no pomoemu ona tormoznutaya nemnogo.
А ты думаешь, ОБХОДИТЬ КАЖДУЮ точку будет быстрее? ;)

Ответить

Страница: 1 | 2 | 3 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам