05.05.2024 15:32:35
Навигация
· XNA FAQ
· С чего начать
· Конкурсы
· Обратная связь
· XNA Блоги
Сейчас на сайте
· Гостей: 1

· Пользователей: 0

· Всего пользователей: 7,142
· Новый пользователь: Sarahseato
Последние фото
Thurs Puzzle
Thurs Puzzle
Альбом: XNA Games

Thurs Puzzle
Thurs Puzzle
Альбом: XNA Games

Thurs Puzzle
Thurs Puzzle
Альбом: XNA Games

Блоги
general
» Unity3D – Chunky ...
general
» Unity3D: Simple p...
dampirik
» Записки программи...
dampirik
» Локализация прило...
dampirik
» Эффективность рас...
general
» HLSL: Шейдер воды
general
» Unity 3D: Управле...
general
» Unity 3D: FPS scr...
yavshoke
» XboxOne - интерес...
dampirik
» Push уведомления ...
Поддержка
microsoft.com
1gb.ru - Дом для вашего сайта
Просмотр темы
 Распечатать тему
Quazatron Windows Phone
Yozka
#41 Распечатать сообщение
Опубликовано 25.10.2013 15:04:10
Аватар пользователя

Старший специалист


Сообщений: 289
Зарегистрирован: 18.04.12

Друзья!
Как обстоят дела с вунтриигровыми покупками на WP7 ?
Вообще никак?
 
http://isera.info
general
#42 Распечатать сообщение
Опубликовано 25.10.2013 15:33:02
Аватар пользователя

Администратор сайта


Сообщений: 3837
Зарегистрирован: 10.02.09

http://mikaelkosk...se-paypal/

а почему не на wp8 ориентируешься? это дало бы гибкость в выборе платформ.
+планшеты, PC и если приложить немного усилий, то дроид с иосью. в monogame например.
[dtimofeev.blogspot.com]
 
Yozka
#43 Распечатать сообщение
Опубликовано 25.10.2013 18:24:41
Аватар пользователя

Старший специалист


Сообщений: 289
Зарегистрирован: 18.04.12

На xna пишу по двум причинам:

1. Девайс старый, только поддерживает WP7.5. Собственно у меня нет возможности тестировать приложение созданное для WP8. Покупать новый телефон не хочется, мой старый htc titan меня полностью устраивает.

2. За полтора года накопилось довольно много наработок, и просто вот так вот взять и отказаться от них немного жалко. И как-то сложно принять мысль, что все это было в пустую.


У меня следующий план. Эту игру выпустить в рамках XNA фреймоворка. Посмотреть гемплей игры, отрегулировать баланс. Попытаться заработать. И в конце жизненного цикла программы заморозить код.

Следующий шаг это портировать игру на С++ с упором на кросплатформенность.
Либо, начну новый проект уже на DirectX C++

Monogame мне не нравится, если майкрософт похоронит xna то так тому и быть. Иначе чувствую себя как будто я скачу на мертвой лошади.

 
http://isera.info
DezoEsper
#44 Распечатать сообщение
Опубликовано 25.10.2013 19:48:41
Аватар пользователя

Специалист


Сообщений: 143
Зарегистрирован: 16.05.11

Yozka, вы недооцениваете 'Monogame', он развивается бешеными темпами, и все наработки для 'xna', будут работать на Monogame! Даже ничего переделывать не придется. Плюс (для кого-то точно), 'Monogame' стал поддерживать Playstation 4 XD.
PS: Программировать на C#, это же одно удовольствие! :3
MonoGame Site // LWJGL // OGRE
Я в Google+,Twitter
Сайт нашей команды.[Обновлен]
 
dampirik
#45 Распечатать сообщение
Опубликовано 25.10.2013 21:02:26
Аватар пользователя

Гуру


Сообщений: 1010
Зарегистрирован: 21.02.10

Даже ничего переделывать не придется.

Ну это как повезет, но будем надеяться, что в будущем так и будет=)

 
Yozka
#46 Распечатать сообщение
Опубликовано 25.10.2013 23:45:09
Аватар пользователя

Старший специалист


Сообщений: 289
Зарегистрирован: 18.04.12

general спасибо за ссылку.
Это что получается, придется свой интернет магазин скалачивать для внутригровых покупок?

Логику вижу такой:
Запускаем игру, игра имея ID пользователя скачивает из магазина все уже ранне купленные игровые штуки.
Если пользователь, хочет прикупить игровых вещей. То он в игре регестрируется. Придумывает себе ник и пароль. либо игра генерирует "токен"

Дальше идет на сайт, вводит имя/пароль либо "токен".
Ложим в корзину игровые вещи, производитм оплату палкой или робокассой, или другой платежной системой.
купленные игровые вещи, привязываются к ID пользователю.

Далее, заходим в игру, обновляемся / выкачиваем купленные игровые штуковины. Пользуемся.

Так даже лучше будет.
 
http://isera.info
general
#47 Распечатать сообщение
Опубликовано 25.10.2013 23:52:41
Аватар пользователя

Администратор сайта


Сообщений: 3837
Зарегистрирован: 10.02.09

я не вчитывался, аврал, нашел статью близкую по смыслу.
просто знал, что как то точно возможно.
[dtimofeev.blogspot.com]
 
Yozka
#48 Распечатать сообщение
Опубликовано 26.10.2013 23:50:54
Аватар пользователя

Старший специалист


Сообщений: 289
Зарегистрирован: 18.04.12

Запилил второе видео (выложил на первую страницу), снимал на эмуляторе 720P. Видны по бокам черные полосы, так как я сделал гардиент по краям карты, эти полосы некретичны.

Уже прорисовывается интерфейс. Через пару недель закончу с интерфейсом, далее займусь частицами, или инвентарем. или системой со сменой уровней.

Работы еще полно.
Изменил(а) Yozka, 26.10.2013 23:51:24
 
http://isera.info
Yozka
#49 Распечатать сообщение
Опубликовано 30.10.2013 22:33:36
Аватар пользователя

Старший специалист


Сообщений: 289
Зарегистрирован: 18.04.12

Приступил к вкусняшке, роботы будут выглядить как то вот так.
Yozka присоединил изображение:


[11,63Kb]
 
http://isera.info
Yozka
#50 Распечатать сообщение
Опубликовано 01.11.2013 11:24:19
Аватар пользователя

Старший специалист


Сообщений: 289
Зарегистрирован: 18.04.12

Мдяяяяя, ненашел вменяемого редактора 2D костной анимации, чтобы можно было точки и матрицы поворотов костей экспортировать в XML.
Придется свою тулзу писать.
А мне это делать неохота, старею я.
 
http://isera.info
Yozka
#51 Распечатать сообщение
Опубликовано 18.11.2013 09:06:56
Аватар пользователя

Старший специалист


Сообщений: 289
Зарегистрирован: 18.04.12

Сделал редактор 2Д анимации. Получилось трешово, но пользоваться можно. Самый главный момент в том, что редактор анимацию экспортирует в и гровой проект ввиде кода. Да редактор создает порятнку - код. который отрисовывает и анимирует юниты.
Пока получается несусветная хрень. Если в течении недели несмогу закончить анимацию. то демка/игра будет без анимации. жаль. Иначе проект затяну на долгое время. Хочется к новому году выпустить играбельную демку.
 
http://isera.info
Hellmapper
#52 Распечатать сообщение
Опубликовано 18.11.2013 13:59:36
Аватар пользователя

Старший специалист


Сообщений: 454
Зарегистрирован: 03.07.11

У тебя анимация построена на соотношении Время - Матрица деформация? И редактор дает файл с этими соотношениями, а в проге ты просто парсишь этот файл в класс который в последующем обрабатывает анимацию?
 
Yozka
#53 Распечатать сообщение
Опубликовано 18.11.2013 14:49:47
Аватар пользователя

Старший специалист


Сообщений: 289
Зарегистрирован: 18.04.12

да, анимация построена по соотношению времени. время задаю в милисекундах. В программе время представляется от 0 до 1. Этакая временная линия анимации. На эту линию вешаю узлы.
Узел это смещение спрайта относительно нуля по X,Y,ПОВОРОТ .
По этим узлам строится матрица трансофрмации. для отрисовки спрайтов.

Далее редактор, создает код C# ввиде класса, где статическйи сформирован массив узлов. по которым этот класс и рисует анимацию.

Получаются такие адские портянки

Например отрисовка робота, сформированно автоматический.
где
joint_* - текущие узлы, в котором хронятся анимационные смещения
m_robot_* - спрайты ввиде классов, которые могут отрисовыватся и хранятся внутри точки соеденения узлов между собой

щас отлаживаю. уже рисуется робот. даже дрыгает своими оглоблями. (руками ногами)

Загрузить источник  GeSHi: C#
  1.  
  2. ///--------------------------------------------------------------------------------------
  3. /// <summary>
  4. /// Отрисовка: skeleton_robot
  5. /// </summary>
  6. public void render(ASpriteBatch spriteBatch, Vector2 posCenter)
  7. {
  8. TNode nd_robot_tors = joint_root + m_robot_tors.rootNode();
  9. Vector2 vt_robot_tors = new Vector2(nd_robot_tors.x, nd_robot_tors.y) + posCenter;
  10. float ra_robot_tors = nd_robot_tors.angle;
  11. Matrix mx_robot_tors = Matrix.CreateRotationZ(ra_robot_tors);
  12.  
  13.  
  14. //joint_hand_left
  15. if (m_robot_hand_left != null)
  16. {
  17. TNode nd_robot_hand_left = joint_hand_left + m_robot_tors.node(ENodesName.hand_left);
  18. Vector2 vt_robot_hand_left = Vector2.Transform(new Vector2(nd_robot_hand_left.x, nd_robot_hand_left.y), mx_robot_tors) + vt_robot_tors;
  19. float ra_robot_hand_left = nd_robot_hand_left.angle + ra_robot_tors;
  20. Matrix mx_robot_hand_left = Matrix.CreateRotationZ(ra_robot_hand_left);
  21. m_robot_hand_left.render(spriteBatch, vt_robot_hand_left, ra_robot_hand_left);
  22. }
  23.  
  24. //joint_hand_right
  25. if (m_robot_hand_right != null)
  26. {
  27. TNode nd_robot_hand_right = joint_hand_right + m_robot_tors.node(ENodesName.hand_right);
  28. Vector2 vt_robot_hand_right = Vector2.Transform(new Vector2(nd_robot_hand_right.x, nd_robot_hand_right.y), mx_robot_tors) + vt_robot_tors;
  29. float ra_robot_hand_right = nd_robot_hand_right.angle + ra_robot_tors;
  30. Matrix mx_robot_hand_right = Matrix.CreateRotationZ(ra_robot_hand_right);
  31. m_robot_hand_right.render(spriteBatch, vt_robot_hand_right, ra_robot_hand_right);
  32. }
  33.  
  34. //joint_leg_left
  35. if (m_robot_leg_left != null)
  36. {
  37. TNode nd_robot_leg_left = joint_leg_left + m_robot_tors.node(ENodesName.leg_left);
  38. Vector2 vt_robot_leg_left = Vector2.Transform(new Vector2(nd_robot_leg_left.x, nd_robot_leg_left.y), mx_robot_tors) + vt_robot_tors;
  39. float ra_robot_leg_left = nd_robot_leg_left.angle + ra_robot_tors;
  40. Matrix mx_robot_leg_left = Matrix.CreateRotationZ(ra_robot_leg_left);
  41. m_robot_leg_left.render(spriteBatch, vt_robot_leg_left, ra_robot_leg_left);
  42. }
  43.  
  44. //joint_leg_right
  45. if (m_robot_leg_right != null)
  46. {
  47. TNode nd_robot_leg_right = joint_leg_right + m_robot_tors.node(ENodesName.leg_right);
  48. Vector2 vt_robot_leg_right = Vector2.Transform(new Vector2(nd_robot_leg_right.x, nd_robot_leg_right.y), mx_robot_tors) + vt_robot_tors;
  49. float ra_robot_leg_right = nd_robot_leg_right.angle + ra_robot_tors;
  50. Matrix mx_robot_leg_right = Matrix.CreateRotationZ(ra_robot_leg_right);
  51. m_robot_leg_right.render(spriteBatch, vt_robot_leg_right, ra_robot_leg_right);
  52. }
  53.  
  54. m_robot_tors.render(spriteBatch, posCenter + new Vector2(joint_root.x, joint_root.y), joint_root.angle);
  55.  
  56.  
  57. //joint_head
  58. if (m_robot_head != null)
  59. {
  60. TNode nd_robot_head = joint_head + m_robot_tors.node(ENodesName.head);
  61. Vector2 vt_robot_head = Vector2.Transform(new Vector2(nd_robot_head.x, nd_robot_head.y), mx_robot_tors) + vt_robot_tors;
  62. float ra_robot_head = nd_robot_head.angle + ra_robot_tors;
  63. Matrix mx_robot_head = Matrix.CreateRotationZ(ra_robot_head);
  64. m_robot_head.render(spriteBatch, vt_robot_head, ra_robot_head);
  65. }
  66. }
  67.  
Добавлено за 0.023 секунд, используя GeSHi 1.0.8.2
 
http://isera.info
Hellmapper
#54 Распечатать сообщение
Опубликовано 18.11.2013 19:06:46
Аватар пользователя

Старший специалист


Сообщений: 454
Зарегистрирован: 03.07.11

Далее редактор, создает код C# в виде класса

Что-то тут не так) Если у тебя будет много объектов со скелетной анимацией, то это же сколько кода будет... А так редактор бы записывал в файл, например:
Загрузить источник  GeSHi: C#
  1. [Bone:Head]
  2. [Time0][Matrix[]]
  3. [Time1][Matrix[]]
  4. [Bone:Leg]
  5. [Time0][Matrix[]]
  6. /*И т.д.*/
Добавлено за 0.004 секунд, используя GeSHi 1.0.8.2

А в игрушке просто парсишь его в класс, который воспроизводит анимацию.
 
Yozka
#55 Распечатать сообщение
Опубликовано 18.11.2013 21:47:33
Аватар пользователя

Старший специалист


Сообщений: 289
Зарегистрирован: 18.04.12

от файлов отказался по двум причинам:
1. слишком муторно, сейчас гружу уровни через content pipeline xml. и мне этот механизм немного раздражает.
2. скорость, если еще к анимации прикрутить парсенг файла, то будет неэффективно.


Да, с моим подходом для генерации кода анимации - не оптимален, и генерируемый листинг доходит до 15 тыщь строк Smile. Но слава майкрософт, и компилятор хорошо оптимизирует код, что основной размер исполняемого файла увеличивается всеголишь на 20кб. При выполнении программы, используемая память увеличилась чтото меньше мегабайта. Считаю что это хорошим результатом.

По количеству объектов, неее их будет немного.
4 скелета роботов:

а) антропоморфное чудовище
б) робот ввиде ведра R2D2
с) робот на гусенечной и колесной тяге, всякие машины
д) летающие шняги


к каждому скелету по 5-6 анимаций
причем, анимация сделана по принципу "один ко многим"
В итоге, всего анимаций выйдет неболее 30. И из за этих 30 анимаций городить огород с парсингом анимационного файла - думаю излишним.
Пускай редактор сразу, код генерит. так проще.

Вот, видео сделал. анимация пока на зачаточном уровне.
YouTube Video

Изменил(а) Yozka, 18.11.2013 21:59:47
 
http://isera.info
Hellmapper
#56 Распечатать сообщение
Опубликовано 18.11.2013 22:05:39
Аватар пользователя

Старший специалист


Сообщений: 454
Зарегистрирован: 03.07.11

2. скорость, если еще к анимации прикрутить парсенг файла, то будет неэффективно.


Так парсить файл нужно только 1 раз при создании персонажа, там ведь у тебя инициализируется класс, который будет проигрывать анимацию героя.
 
Yozka
#57 Распечатать сообщение
Опубликовано 18.11.2013 22:22:03
Аватар пользователя

Старший специалист


Сообщений: 289
Зарегистрирован: 18.04.12

Ага. усложню задачу.
Внешний вид персонажа, может менятся. там српайты рисуются разные. зависимости от характеристики персонажа. И собственно модель которая отрисовывает эти спратйты тоже динамический меняется. не так часто. но всеже это происходит. Соответственно в зависимости от модели создается соответствующая анимация.
Ну и главный для меня аргумент, это "таблица чисел для анимации" хранить непосредственно у персонажа - немного не оптимально. эти данные будут находится у каждого персонажа. и чем больше персонажей. то тем больше придется хранить анимации. Причем анимация то будет у всех одинаковая. такое вот получается неоптимальное расходования памяти. Можно конечно эти таблицы анимации вынести в отдельный менеджер. который будет грузить необходимые данные. и собсвтенно через этот менеджер ренедрить на карте персонажей с учетом анимации. Но это приведет опять же к усложнению кода.
 
http://isera.info
Hellmapper
#58 Распечатать сообщение
Опубликовано 18.11.2013 22:43:00
Аватар пользователя

Старший специалист


Сообщений: 454
Зарегистрирован: 03.07.11

Yozka написал:
Можно конечно эти таблицы анимации вынести в отдельный менеджер. который будет грузить необходимые данные. и собсвтенно через этот менеджер ренедрить на карте персонажей с учетом анимации. Но это приведет опять же к усложнению кода.


Ну на счет усложнения не знаю. У меня к примеру есть AtlasStorage, где я храню атласы текстур(AtlasTexture).
Загрузить источник  GeSHi: C#
  1.  
  2. public struct AtlasTexture
  3. {
  4. public string AtlasName; //Атлас-родитель
  5. public string Name;//Имя текстуры или frm#. frm# - разрешает использовать атлас в качестве источника кадров для анимации.
  6. public Rectangle Rectangle;
  7. public int Width { get { return Rectangle.Width; } }
  8. public int Height { get { return Rectangle.Height; } }
  9. public AtlasTexture(string aname, string tname, Rectangle rect)
  10. {
  11. AtlasName = aname;
  12. Name = tname;
  13. Rectangle = rect;
  14. }
  15. }
  16.  
Добавлено за 0.006 секунд, используя GeSHi 1.0.8.2

Так же есть AtlasDrawer(в конструкторе передается ссылка на атлас) и AnimatedSprite(в конструкторе: ссылка на атлас, кадры в секунду). Последний в свою очередь рисуется с помощью первого. И код вроде не совсем сложный выходит.
 
Yozka
#59 Распечатать сообщение
Опубликовано 19.11.2013 08:54:34
Аватар пользователя

Старший специалист


Сообщений: 289
Зарегистрирован: 18.04.12

я понял твой подход. он универсален.
но мне хотелось сделать, именно автогенерацию кода. мне это просто интересно. Другим такой способ не советую.
 
http://isera.info
Yozka
#60 Распечатать сообщение
Опубликовано 19.11.2013 08:56:51
Аватар пользователя

Старший специалист


Сообщений: 289
Зарегистрирован: 18.04.12

Подскажите, где мне можно найти людей, которые смогут в редакторе карты, нарисовать пару уровней. За хорошую работу, даже готов заплатить.
 
http://isera.info
Перейти на форум:
Авторизация
Логин

Пароль



Забыли пароль?
Запросите новый здесь.
Мини-чат
Вы должны авторизироваться, чтобы добавить сообщение.

11.12.2023

11.12.2023
[img]https://x.pin
-up-world.com/imag
es/img4.jpg[/img]
[url=https://ofoi.
cenditt.loan/new-k
atiana-kay-fucking
-with-lucky-fan-p1
-porn-scenes/]133K
67% New Katiana

11.12.2023
[img]https://wwt.s
sgameadmin2.com/im
ages/img4.jpg[/img
]
[url=https://k.smi
letaxservice.com/r
edirect/SFpEdDR1cG
V4czNKMmxlQi9tVytI
d3dxWW9GWTd5Zk52TD
VVMG1mc3YvUmlDMWUw

11.12.2023

11.12.2023

10.12.2023
[img]https://ey.os
prey-holidays.uk/i
mages/img10.jpg[/i
mg]
[url=https://nby.h
ighlyresponsible.c
om/696488/sexyfeet
girl2020-gotta-kee
p-them-soft-lookin
g-

30.11.2023
[img]https://nuggi
e.army/images/img1
5.jpg[/img]
German Porno kostenlos - Deutsche Pornos &amp; Pornofilme. [url=ht

30.11.2023

30.11.2023
[img]https://where
ijoin.com/images/i
mg8.jpg[/img]
Voir Films VF VOSTFR - . [url=http://mvig.j
ulieemontelaro.com
/]omegleX

30.11.2023
[img]https://steam
unlocked.tangobliv
ion.com/images/img
14.jpg[/img]
Top - Rated Live Sex Cam Videos to Watch Online. [

29.11.2023

29.11.2023
[img]https://chaii
t.com/images/img8.
jpg[/img]
Ottmaza.live - Ottmaza.Com Official Website | Ottmaza | Ottmaza.Net | Ottmaz

29.11.2023
[img]https://ezyja
mb.co.uk/images/im
g10.jpg[/img]
Free Porn - Sex, Tube Videos, XXX Pics, Pussy in Porno

29.11.2023
[img]https://launc
hbusinessloans.org
/images/img15.jpg[
/img]
Asyalı - Koreli Japon Seks Filmleri Türkçe A

29.11.2023
[img]https://panen
poker.org/images/i
mg8.jpg[/img]
[url=http://watchm
ovies.seoullittlem
all.com/]Junkie Musik Lossless &#ff7dee MГєsica ElectrГіnica p

RSS каналы сайта
XNA - Новости
XNA - Статьи
XNA - Форум
XNA - Галерея
XNA - Файлы
Время загрузки: 0,97 секунд 13,296,776 уникальных посетителей