Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Линейная алгебра

Линейная алгебраVector2Vector3Vector4Matrix3x3MatrixBoundingBoxBoundingFrustumBoundingSphereRayA х B != B х A
Линейная алгебраVector2Vector3Vector4Matrix3x3MatrixBoundingBoxBoundingFrustumBoundingSphereRayA х B != B х A Игровая сущность — поляПозицияОриентация в пространствеКол-во жизнейБоезапасКол-во очковФлаги состоянийРазмер…Все что угодноpublic class Игровая сущность — методыСоздатьОбновить внутреннее состояниеНарисоватьНанести уронУничтожитьКасаниеpublic class Entity { // continue… Игровая сущность — наследникиpublic class Monster : Entity { Texture2D texture; public Игровой мирГлобальное состояниеВместилище всех сущностейПорождение сущностейОбновление мира и сущностейРисование мира  и Игровой мир — жизненный цикл сущностейpublic class World {  public void Игровой мир — жизненный цикл сущностейpublic class World {  public Entity Игровой мир — взаимодействие сущностейПсеводкод:foreach ( var ent in entities) { foreach Интегрирование игрового мираTime step:dtgameTimeFixed time stepVariable time stepXn+1 = Xn + V * dt Участвуем в конкурсе! ;) Вопросы? В бой!Алексей Безгодов
Слайды презентации

Слайд 2 Линейная алгебра
Vector2
Vector3
Vector4
Matrix3x3
Matrix
BoundingBox
BoundingFrustum
BoundingSphere
Ray


A х B != B х A

Линейная алгебраVector2Vector3Vector4Matrix3x3MatrixBoundingBoxBoundingFrustumBoundingSphereRayA х B != B х A

Слайд 3 Игровая сущность — поля
Позиция
Ориентация в пространстве
Кол-во жизней
Боезапас
Кол-во очков
Флаги

Игровая сущность — поляПозицияОриентация в пространствеКол-во жизнейБоезапасКол-во очковФлаги состоянийРазмер…Все что угодноpublic

состояний
Размер

Все что угодно
public class Entity {
public Vector2 Position;

public float Angle
public int Health;
public int Ammo;
public int Score;
public EntityState State;
public float Size; } [Flags] public enum EntityState { None = 0x00, Dead = 0x01, Invisible = 0x02;
// add moar!
}

Слайд 4 Игровая сущность — методы
Создать
Обновить внутреннее состояние
Нарисовать
Нанести урон
Уничтожить
Касание

public class

Игровая сущность — методыСоздатьОбновить внутреннее состояниеНарисоватьНанести уронУничтожитьКасаниеpublic class Entity { //

Entity {
// continue… readonly Game game;
public Entity

(Game game){ this.game = game; …}
public void virtual Update(GameTime gameTime){}
public void virtual Draw(SpriteBatch spriteBatch){}
public void virtual Damage(Entity attacker, int dmg){}
public void virtual Kill (Entity killer){}
public void virtual Touch(Entity other){}
}

Слайд 5 Игровая сущность — наследники
public class Monster : Entity

Игровая сущность — наследникиpublic class Monster : Entity { Texture2D texture;

{
Texture2D texture;
public Monster (Game game) : base(game)

{
texture = game.Content.Load(“mySuperMonsterImage”);
}
public void override Update(GameTime gameTime) {
// …
}
public void override Draw(SpriteBatch spriteBatch) {
spriteBatch.Draw( texture, position, … );
}
public void override Damage(Entity attacker, int dmg){}
public void override Kill (Entity killer){}
public void override Touch(Entity other, Vector2 p){}
}

Слайд 6 Игровой мир
Глобальное состояние
Вместилище всех сущностей
Порождение сущностей
Обновление мира и

Игровой мирГлобальное состояниеВместилище всех сущностейПорождение сущностейОбновление мира и сущностейРисование мира и

сущностей
Рисование мира и сущностей
public class World {
List entities

= new …
List toKill
public TimeSpan worldTime;

public void Update(GameTime gameTime){}
public void Draw(GameTime gt, SpriteBatch sb){}
public Entity Spawn( string className, … ){}
public void Kill(Entity ent){}
}

Слайд 7 Игровой мир — жизненный цикл сущностей
public class World

Игровой мир — жизненный цикл сущностейpublic class World { public void

{

public void Update(GameTime gameTime){
foreach

( var ent in entities) { ent.Update(gameTime);
}
foreach ( var ent in entities) {
ent.Update(gameTime);
}
entities.RemoveAll( e => toKill.Contains(e); );
}
public void Draw(GameTime gt, SpriteBatch sb) {
foreach ( var ent in entities) {
ent.Draw(sb);
}
}
}

Слайд 8 Игровой мир — жизненный цикл сущностей
public class World

Игровой мир — жизненный цикл сущностейpublic class World { public Entity

{

public Entity Spawn( string className, … ){

return (Entity)Activator.CreateInstance(…);
}

public void Kill(Entity ent) {
toKill.Add(ent); }
}

Слайд 9 Игровой мир — взаимодействие сущностей
Псеводкод:

foreach ( var ent

Игровой мир — взаимодействие сущностейПсеводкод:foreach ( var ent in entities) {

in entities) {
foreach ( var other in entities)

{
if ( ent intersects other ) {
ent.Touch( other );
}
}
}

Axis-aligned bounding box
Google It ;)
class BoundingBox





Слайд 10 Интегрирование игрового мира
Time step:
dt
gameTime

Fixed time step
Variable time step
Xn+1

Интегрирование игрового мираTime step:dtgameTimeFixed time stepVariable time stepXn+1 = Xn + V * dt

= Xn + V * dt





Слайд 11 Участвуем в конкурсе! ;)

Участвуем в конкурсе! ;)

  • Имя файла: lineynaya-algebra.pptx
  • Количество просмотров: 105
  • Количество скачиваний: 0