Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0 > Статьи

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.03.2011, 20:54
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 291  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Хм, забавно. Я всегда представлял себе модель как "полное состояние игры", по которому можно восстановить процесс игры полностью. То есть, имея на руках модель и сериализатор этой модели можно сохранить её куда нибудь (например, в SharedObject), а потом загрузить, получив ту же самую ситуацию. То есть угол поворота шарика для бильярда — речь о том угле, который крутит шар в оси, который, по сути, меняет только положение циферки-номера шара на шаре — вот он не попадает в модель, потому что неважный. А координаты, соответственно, попадают.
Вообще именно ты мне рассказал об MVC и образовал в моей голове костяк информации об этой теме, а сейчас рушишь мои пирамиды знаний )
Как на самом деле?

Старый 02.03.2011, 22:23
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 292  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
И координаты не попадают
В модели хранится ровно та информация, которая действительно необходима всему приложению.

Старый 02.03.2011, 22:31
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 293  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
В бильярде я вижу такую модель игры:
GameModel
- Players:Player (Array)
- Balls:Ball (Array)
- turnId:int (индекс в массиве players)
- misc (ерунда, вроде рейтинговый матч или нет/and so on)

Соответственно Ball имеет x,y,scored,num.
Почему x,y не нужны всему приложению? Они нужны вьюхе. Кроме того, получив состояние игры с сервера нужно как-то расположить шары на поле. Приказывать вьюхе прямо? Последнее время мне совсем не нравится это дело. Приказы контроллер-вью я передаю через модель.

Старый 02.03.2011, 22:50
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 294  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
x, y больше никому, кроме вью и не нужен, соответственно нет смысла хранить это и на сервере, он все равно не справится с контролем каждого клиента.

Старый 02.03.2011, 23:34
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 295  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Ну так, примерно понятно. То есть можно трактовать это так: "в модели хранится то, что гипотетически может быть послано на сервер". В двойных кавычках, конечно.

Цитата:
он все равно не справится с контролем каждого клиента.
Объясни про вот это пожалуйста.

Старый 03.03.2011, 01:30
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 296  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
По мне, тут нет однозначного правила.
В ммо - всегда хранятся координаты персонажей, например.
В бильярде - Xто Знает. Как решено проверять логику, если не надо проверять на физику ударов от читеров, то координаты и не нужны.. Хотя для реконнектов всё равно пригодились бы..
__________________
Отряд Котовскага

Старый 03.03.2011, 06:17
cr0w312 вне форума Посмотреть профиль Отправить личное сообщение для cr0w312 Найти все сообщения от cr0w312
  № 297  
Ответить с цитированием
cr0w312
 
Аватар для cr0w312

Регистрация: Mar 2009
Адрес: this.x=0;this.y=0;this.z=0
Сообщений: 89
Ну вот, вернулись в самое начало. Что хранит в себе модель? Контроллер знает о координатах вью, но меняет их через модель которой эти координаты как мертвому припарка. Или как? в модели есть состояния - идет/стоит, а вьюха видя состояние модели чалится вперед/стоит на месте, то-есть алгоритм движения во вьюшке а управляет этим алгоритмом контроллер через состояние модели?

Добавлено через 2 часа 6 минут
А. Модель хранит в себе то, что необходимо в конкретной ситуации(имеется ввиду не в определенный момент времени, а реализация проекта)? Контроллер принимает решения типа "Нада памыть пасуду" и т.п. а вьюшка уже идет и моет посуду, идет она по своей воле ее не толкает контролер, а модель просто знает чем сейчас занята вьюшка, и если пользователь пхнет мышой во вьюшку, мол хватит, вьюшка сама по себе не перестанет мыть посуду(ну чисто визуально), она посылает контроллеру вопрос - мол хватит?, контроллер оценит степень чистоты посуды и вынесет решение - модель, мыть посуду еще 10 секунд. Вьюшка слушает изменения модели и через 10 сек заканчивает. Ну вот, снова получилось "на пальцах" и никакой конкретики.


Последний раз редактировалось cr0w312; 03.03.2011 в 08:09.
Старый 03.03.2011, 17:14
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 298  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Psycho Tiger, ну вот, в бильярде координаты серверу уж точно не нужны. Он просто не сможет гонять шары для всех-всех пользователей, никаких серверов не хватит (это к твоему вопросу насчет контроля).

Котяра, а что реконнект, клиент может и не закрывать сессию, отвалился-подключился, сервер состояние и так помнит.

cr0w312, насчет изменения координат — всё зависит от конкретного проекта. В общем случае обязанности не распределишь. Если это бильярдный шар, то гоняет его вьювер-контейнер. Если это персонаж на локации, то его может гонять сама модель по заранее просчитаному пути, например. Если машинка какая-то, то тут уже контроллер ею может управлять.

Про мытьё посуды почти так, только модель о вьюверах вообще ничего не знает никогда. Контроллер при получении события может оценить прогресс и, либо остановить процесс, путем изменения состояния модели, либо продолжить.

Старый 03.03.2011, 18:50
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 299  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Могу пример привести из моего любимого Toribash.

Физика там вся в клиенте, во вьюхе.
На сервак отправляются просто команды следующего хода - согнуть коленку, выпрямить локоть.
Сервак пересылает клиенту номер рас команды от клиента номер два, а клиенту номер два команды от клиента номер рас.

Потом оба клиента получив оба пакета команд у себя это отрисовывают, независимо от сервера (модели).

Как-то так. Такую же картину вижу и в бильярде. Если это мультиплей то координаты х.у. модели не нужны, (под моделью в данной ситуации я понимаю модель игры на сервере), в модели хранится только последний удар. Кто ударил по какому шару, и в какой точке. А дальше обе вьюхи оппонентов без проблем могут по серии этих ударов воссоздать всю партию. Так как физика в обоих вьюхах одинаковая.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 03.03.2011, 20:31
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 300  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Dukobpa3, ну да, примерно так. Только физику надо округлять, чтобы точно было одинаково.

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:19.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.