Професионална програма
Loading...
Konan avatar Konan 13 Точки

Структура на проект за игра с Entity Framework и Monogame

В Solution-a има три проекта - Game, Data и Models. В Game ще е цялата Game-логика. Имам модел Player, който съдържа всичките данни, които ще се пазят в базата, но впоследствие ще трябва да има и много допълнителни полета и функции, които ще трябват за логиката на играта (позиция по х и у, размери на spritesheet-a и т.н ) Въпросът ми е - къде е най-добре да запиша допълнителната информация. В самия модел като добавям [Not mapped] атрибут над всяко пропърти, което не искам да е в базата или да напрявя изцяло друг клас, които да стои в папка Game при останалите елементи на самата игра? Или нещо съвсем различно? Не успях да намеря проект в интернет който да комбинира Monogame и Entity Framework и ще се радвам на всякакви съвети или линкове към някакви примерни структури.

1
Module: C# DB 15/04/2017 02:18:39
RoYaL avatar RoYaL Trainer 6847 Точки
Best Answer

Според мен това, което ти трябва е слой на услугите, който да извършва бизнес операциите, а теб да не те интересува дали те са свързани с игровата библиотека или базата данни. По-скоро ще имаш свързан играч с базата и свързан играч с игровата библиотека.

var playerService = new PlayerService(myGameAppInstance, myRepositoryLayerInstance);

playerService.IncreaseSpriteWidth(playerId, 25);

playerService.GetName(playerId);

Като първото вероятно си контактува с Monogame application-а (или наследника, който си написал), за да увеличи размера на спрайта, докато второто вероятно тегли името на играча през базата данни (или посредством хранилище, което контактува с базата данни).

 

0
Konan avatar Konan 13 Точки

Благодаря много за бързия отговор, беше ми много полезен. Не се бях замисляла да направя Service класове и сега като ги спомена ми стана доста по-ясно каква логика трябва да имплементирам. А да си попадал на някакви open-source игри с Monogame и Entity? 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.