├── .gitignore
├── LICENSE
├── README.md
├── TS GameEngine 01
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 02
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── engine.ts
│ ├── gl.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 03
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── core
│ └── gl
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ └── shader.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 04
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── core
│ └── gl
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ └── shader.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 05
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── core
│ └── gl
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ ├── glBuffer.ts
│ │ └── shader.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 06
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── core
│ ├── gl
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ ├── glBuffer.ts
│ │ └── shader.ts
│ ├── graphics
│ │ └── sprite.ts
│ └── math
│ │ ├── matrix4x4.ts
│ │ └── vector3.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 07~08
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── assets
│ └── textures
│ │ ├── bg.png
│ │ ├── duck.png
│ │ ├── end.png
│ │ ├── grass.png
│ │ ├── middle.png
│ │ ├── playbtn.png
│ │ ├── restartbtn.png
│ │ ├── score.png
│ │ ├── title.png
│ │ └── tutorial.png
│ ├── core
│ ├── assets
│ │ ├── IAsset.ts
│ │ ├── IAssetLoader.ts
│ │ ├── assetManager.ts
│ │ └── imageAssetLoader.ts
│ ├── gl
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ ├── glBuffer.ts
│ │ └── shader.ts
│ ├── graphics
│ │ ├── sprite.ts
│ │ ├── texture.ts
│ │ └── textureManager.ts
│ ├── math
│ │ ├── matrix4x4.ts
│ │ └── vector3.ts
│ └── message
│ │ ├── IMessageHandler.ts
│ │ ├── message.ts
│ │ ├── messageBus.ts
│ │ └── messageSubscriptionNode.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 09
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── assets
│ └── textures
│ │ ├── bg.png
│ │ ├── duck.png
│ │ ├── end.png
│ │ ├── grass.png
│ │ ├── middle.png
│ │ ├── playbtn.png
│ │ ├── restartbtn.png
│ │ ├── score.png
│ │ ├── title.png
│ │ └── tutorial.png
│ ├── core
│ ├── assets
│ │ ├── IAsset.ts
│ │ ├── IAssetLoader.ts
│ │ ├── assetManager.ts
│ │ └── imageAssetLoader.ts
│ ├── gl
│ │ ├── color.ts
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ ├── glBuffer.ts
│ │ ├── material.ts
│ │ ├── shader.ts
│ │ └── shaders
│ │ │ └── baseShader.ts
│ ├── graphics
│ │ ├── color.ts
│ │ ├── material.ts
│ │ ├── materialManager.ts
│ │ ├── sprite.ts
│ │ ├── texture.ts
│ │ └── textureManager.ts
│ ├── math
│ │ ├── matrix4x4.ts
│ │ └── vector3.ts
│ └── message
│ │ ├── IMessageHandler.ts
│ │ ├── message.ts
│ │ ├── messageBus.ts
│ │ └── messageSubscriptionNode.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 10
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── assets
│ └── textures
│ │ ├── bg.png
│ │ ├── duck.png
│ │ ├── end.png
│ │ ├── grass.png
│ │ ├── middle.png
│ │ ├── playbtn.png
│ │ ├── restartbtn.png
│ │ ├── score.png
│ │ ├── title.png
│ │ └── tutorial.png
│ ├── core
│ ├── assets
│ │ ├── IAsset.ts
│ │ ├── IAssetLoader.ts
│ │ ├── assetManager.ts
│ │ └── imageAssetLoader.ts
│ ├── gl
│ │ ├── color.ts
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ ├── glBuffer.ts
│ │ ├── material.ts
│ │ ├── shader.ts
│ │ └── shaders
│ │ │ └── baseShader.ts
│ ├── graphics
│ │ ├── color.ts
│ │ ├── material.ts
│ │ ├── materialManager.ts
│ │ ├── sprite.ts
│ │ ├── texture.ts
│ │ └── textureManager.ts
│ ├── math
│ │ ├── matrix4x4.ts
│ │ ├── transform.ts
│ │ └── vector3.ts
│ ├── message
│ │ ├── IMessageHandler.ts
│ │ ├── message.ts
│ │ ├── messageBus.ts
│ │ └── messageSubscriptionNode.ts
│ └── world
│ │ ├── scene.ts
│ │ └── simObject.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 11
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── assets
│ └── textures
│ │ ├── bg.png
│ │ ├── duck.png
│ │ ├── end.png
│ │ ├── grass.png
│ │ ├── middle.png
│ │ ├── playbtn.png
│ │ ├── restartbtn.png
│ │ ├── score.png
│ │ ├── title.png
│ │ └── tutorial.png
│ ├── core
│ ├── assets
│ │ ├── IAsset.ts
│ │ ├── IAssetLoader.ts
│ │ ├── assetManager.ts
│ │ └── imageAssetLoader.ts
│ ├── components
│ │ ├── baseComponent.ts
│ │ └── spriteComponent.ts
│ ├── gl
│ │ ├── color.ts
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ ├── glBuffer.ts
│ │ ├── material.ts
│ │ ├── shader.ts
│ │ └── shaders
│ │ │ └── baseShader.ts
│ ├── graphics
│ │ ├── color.ts
│ │ ├── material.ts
│ │ ├── materialManager.ts
│ │ ├── sprite.ts
│ │ ├── texture.ts
│ │ └── textureManager.ts
│ ├── math
│ │ ├── matrix4x4.ts
│ │ ├── transform.ts
│ │ └── vector3.ts
│ ├── message
│ │ ├── IMessageHandler.ts
│ │ ├── message.ts
│ │ ├── messageBus.ts
│ │ └── messageSubscriptionNode.ts
│ └── world
│ │ ├── scene.ts
│ │ ├── simObject.ts
│ │ ├── testZone.ts
│ │ ├── zone.ts
│ │ └── zoneManager.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 13
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── assets
│ ├── textures
│ │ ├── bg.png
│ │ ├── duck.png
│ │ ├── end.png
│ │ ├── grass.png
│ │ ├── middle.png
│ │ ├── playbtn.png
│ │ ├── restartbtn.png
│ │ ├── score.png
│ │ ├── title.png
│ │ └── tutorial.png
│ └── zones
│ │ └── testZone.json
│ ├── core
│ ├── assets
│ │ ├── IAsset.ts
│ │ ├── IAssetLoader.ts
│ │ ├── assetManager.ts
│ │ ├── imageAssetLoader.ts
│ │ └── jsonAssetLoader.ts
│ ├── components
│ │ ├── baseComponent.ts
│ │ └── spriteComponent.ts
│ ├── gl
│ │ ├── color.ts
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ ├── glBuffer.ts
│ │ ├── material.ts
│ │ ├── shader.ts
│ │ └── shaders
│ │ │ └── baseShader.ts
│ ├── graphics
│ │ ├── color.ts
│ │ ├── material.ts
│ │ ├── materialManager.ts
│ │ ├── sprite.ts
│ │ ├── texture.ts
│ │ └── textureManager.ts
│ ├── math
│ │ ├── matrix4x4.ts
│ │ ├── transform.ts
│ │ └── vector3.ts
│ ├── message
│ │ ├── IMessageHandler.ts
│ │ ├── message.ts
│ │ ├── messageBus.ts
│ │ └── messageSubscriptionNode.ts
│ └── world
│ │ ├── scene.ts
│ │ ├── simObject.ts
│ │ ├── testZone.ts
│ │ ├── zone.ts
│ │ └── zoneManager.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 14
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── assets
│ ├── textures
│ │ ├── bg.png
│ │ ├── duck.png
│ │ ├── end.png
│ │ ├── grass.png
│ │ ├── middle.png
│ │ ├── playbtn.png
│ │ ├── restartbtn.png
│ │ ├── score.png
│ │ ├── title.png
│ │ └── tutorial.png
│ └── zones
│ │ └── testZone.json
│ ├── core
│ ├── assets
│ │ ├── IAsset.ts
│ │ ├── IAssetLoader.ts
│ │ ├── assetManager.ts
│ │ ├── imageAssetLoader.ts
│ │ └── jsonAssetLoader.ts
│ ├── components
│ │ ├── ComponentManager.ts
│ │ ├── IComponent.ts
│ │ ├── IComponentBuilder.ts
│ │ ├── IComponentData.ts
│ │ ├── baseComponent.ts
│ │ └── spriteComponent.ts
│ ├── gl
│ │ ├── color.ts
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ ├── glBuffer.ts
│ │ ├── material.ts
│ │ ├── shader.ts
│ │ └── shaders
│ │ │ └── baseShader.ts
│ ├── graphics
│ │ ├── color.ts
│ │ ├── material.ts
│ │ ├── materialManager.ts
│ │ ├── sprite.ts
│ │ ├── texture.ts
│ │ └── textureManager.ts
│ ├── math
│ │ ├── matrix4x4.ts
│ │ ├── transform.ts
│ │ └── vector3.ts
│ ├── message
│ │ ├── IMessageHandler.ts
│ │ ├── message.ts
│ │ ├── messageBus.ts
│ │ └── messageSubscriptionNode.ts
│ └── world
│ │ ├── scene.ts
│ │ ├── simObject.ts
│ │ ├── testZone.ts
│ │ ├── zone.ts
│ │ └── zoneManager.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 15
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── assets
│ ├── textures
│ │ ├── bg.png
│ │ ├── duck.png
│ │ ├── end.png
│ │ ├── grass.png
│ │ ├── middle.png
│ │ ├── playbtn.png
│ │ ├── restartbtn.png
│ │ ├── score.png
│ │ ├── title.png
│ │ └── tutorial.png
│ └── zones
│ │ └── testZone.json
│ ├── core
│ ├── assets
│ │ ├── IAsset.ts
│ │ ├── IAssetLoader.ts
│ │ ├── assetManager.ts
│ │ ├── imageAssetLoader.ts
│ │ └── jsonAssetLoader.ts
│ ├── behaviors
│ │ ├── IBehavior.ts
│ │ ├── IBehaviorBuilder.ts
│ │ ├── IBehaviorData.ts
│ │ ├── baseBehavior.ts
│ │ ├── behaviorManager.ts
│ │ └── rotationBehavior.ts
│ ├── components
│ │ ├── ComponentManager.ts
│ │ ├── IComponent.ts
│ │ ├── IComponentBuilder.ts
│ │ ├── IComponentData.ts
│ │ ├── baseComponent.ts
│ │ └── spriteComponent.ts
│ ├── gl
│ │ ├── color.ts
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ ├── glBuffer.ts
│ │ ├── material.ts
│ │ ├── shader.ts
│ │ └── shaders
│ │ │ └── baseShader.ts
│ ├── graphics
│ │ ├── color.ts
│ │ ├── material.ts
│ │ ├── materialManager.ts
│ │ ├── sprite.ts
│ │ ├── texture.ts
│ │ └── textureManager.ts
│ ├── math
│ │ ├── matrix4x4.ts
│ │ ├── transform.ts
│ │ └── vector3.ts
│ ├── message
│ │ ├── IMessageHandler.ts
│ │ ├── message.ts
│ │ ├── messageBus.ts
│ │ └── messageSubscriptionNode.ts
│ └── world
│ │ ├── scene.ts
│ │ ├── simObject.ts
│ │ ├── testZone.ts
│ │ ├── zone.ts
│ │ └── zoneManager.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 16
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── assets
│ ├── textures
│ │ ├── bg.png
│ │ ├── duck.png
│ │ ├── end.png
│ │ ├── grass.png
│ │ ├── middle.png
│ │ ├── playbtn.png
│ │ ├── restartbtn.png
│ │ ├── score.png
│ │ ├── title.png
│ │ └── tutorial.png
│ └── zones
│ │ └── testZone.json
│ ├── core
│ ├── assets
│ │ ├── IAsset.ts
│ │ ├── IAssetLoader.ts
│ │ ├── assetManager.ts
│ │ ├── imageAssetLoader.ts
│ │ └── jsonAssetLoader.ts
│ ├── behaviors
│ │ ├── IBehavior.ts
│ │ ├── IBehaviorBuilder.ts
│ │ ├── IBehaviorData.ts
│ │ ├── baseBehavior.ts
│ │ ├── behaviorManager.ts
│ │ └── rotationBehavior.ts
│ ├── components
│ │ ├── ComponentManager.ts
│ │ ├── IComponent.ts
│ │ ├── IComponentBuilder.ts
│ │ ├── IComponentData.ts
│ │ ├── animatedSpriteComponent.ts
│ │ ├── baseComponent.ts
│ │ └── spriteComponent.ts
│ ├── gl
│ │ ├── color.ts
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ ├── glBuffer.ts
│ │ ├── material.ts
│ │ ├── shader.ts
│ │ └── shaders
│ │ │ └── baseShader.ts
│ ├── graphics
│ │ ├── animatedSprite.ts
│ │ ├── color.ts
│ │ ├── material.ts
│ │ ├── materialManager.ts
│ │ ├── sprite.ts
│ │ ├── texture.ts
│ │ ├── textureManager.ts
│ │ └── vertex.ts
│ ├── math
│ │ ├── matrix4x4.ts
│ │ ├── transform.ts
│ │ ├── vector2.ts
│ │ └── vector3.ts
│ ├── message
│ │ ├── IMessageHandler.ts
│ │ ├── message.ts
│ │ ├── messageBus.ts
│ │ └── messageSubscriptionNode.ts
│ └── world
│ │ ├── scene.ts
│ │ ├── simObject.ts
│ │ ├── testZone.ts
│ │ ├── zone.ts
│ │ └── zoneManager.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 17~18
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── assets
│ ├── sounds
│ │ └── flap.mp3
│ ├── textures
│ │ ├── bg.png
│ │ ├── duck.png
│ │ ├── end.png
│ │ ├── grass.png
│ │ ├── middle.png
│ │ ├── playbtn.png
│ │ ├── restartbtn.png
│ │ ├── score.png
│ │ ├── title.png
│ │ └── tutorial.png
│ └── zones
│ │ └── testZone.json
│ ├── core
│ ├── assets
│ │ ├── IAsset.ts
│ │ ├── IAssetLoader.ts
│ │ ├── assetManager.ts
│ │ ├── imageAssetLoader.ts
│ │ └── jsonAssetLoader.ts
│ ├── audio
│ │ └── audioManager.ts
│ ├── behaviors
│ │ ├── IBehavior.ts
│ │ ├── IBehaviorBuilder.ts
│ │ ├── IBehaviorData.ts
│ │ ├── baseBehavior.ts
│ │ ├── behaviorManager.ts
│ │ ├── keyboardMovementBehavior.ts
│ │ └── rotationBehavior.ts
│ ├── components
│ │ ├── ComponentManager.ts
│ │ ├── IComponent.ts
│ │ ├── IComponentBuilder.ts
│ │ ├── IComponentData.ts
│ │ ├── animatedSpriteComponent.ts
│ │ ├── baseComponent.ts
│ │ └── spriteComponent.ts
│ ├── gl
│ │ ├── color.ts
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ ├── glBuffer.ts
│ │ ├── material.ts
│ │ ├── shader.ts
│ │ └── shaders
│ │ │ └── baseShader.ts
│ ├── graphics
│ │ ├── animatedSprite.ts
│ │ ├── color.ts
│ │ ├── material.ts
│ │ ├── materialManager.ts
│ │ ├── sprite.ts
│ │ ├── texture.ts
│ │ ├── textureManager.ts
│ │ └── vertex.ts
│ ├── input
│ │ └── inputManager.ts
│ ├── math
│ │ ├── matrix4x4.ts
│ │ ├── transform.ts
│ │ ├── vector2.ts
│ │ └── vector3.ts
│ ├── message
│ │ ├── IMessageHandler.ts
│ │ ├── message.ts
│ │ ├── messageBus.ts
│ │ └── messageSubscriptionNode.ts
│ └── world
│ │ ├── scene.ts
│ │ ├── simObject.ts
│ │ ├── testZone.ts
│ │ ├── zone.ts
│ │ └── zoneManager.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 19
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── assets
│ ├── sounds
│ │ └── flap.mp3
│ ├── textures
│ │ ├── bg.png
│ │ ├── duck.png
│ │ ├── end.png
│ │ ├── grass.png
│ │ ├── middle.png
│ │ ├── playbtn.png
│ │ ├── restartbtn.png
│ │ ├── score.png
│ │ ├── title.png
│ │ └── tutorial.png
│ └── zones
│ │ └── testZone.json
│ ├── core
│ ├── assets
│ │ ├── IAsset.ts
│ │ ├── IAssetLoader.ts
│ │ ├── assetManager.ts
│ │ ├── imageAssetLoader.ts
│ │ └── jsonAssetLoader.ts
│ ├── audio
│ │ └── audioManager.ts
│ ├── behaviors
│ │ ├── IBehavior.ts
│ │ ├── IBehaviorBuilder.ts
│ │ ├── IBehaviorData.ts
│ │ ├── baseBehavior.ts
│ │ ├── behaviorManager.ts
│ │ ├── keyboardMovementBehavior.ts
│ │ └── rotationBehavior.ts
│ ├── components
│ │ ├── ComponentManager.ts
│ │ ├── IComponent.ts
│ │ ├── IComponentBuilder.ts
│ │ ├── IComponentData.ts
│ │ ├── animatedSpriteComponent.ts
│ │ ├── baseComponent.ts
│ │ ├── collisionComponent.ts
│ │ └── spriteComponent.ts
│ ├── gl
│ │ ├── color.ts
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ ├── glBuffer.ts
│ │ ├── material.ts
│ │ ├── shader.ts
│ │ └── shaders
│ │ │ └── baseShader.ts
│ ├── graphics
│ │ ├── animatedSprite.ts
│ │ ├── color.ts
│ │ ├── material.ts
│ │ ├── materialManager.ts
│ │ ├── shapes2D
│ │ │ ├── IShape2D.ts
│ │ │ ├── circle2D.ts
│ │ │ └── rectangle2d.ts
│ │ ├── sprite.ts
│ │ ├── texture.ts
│ │ ├── textureManager.ts
│ │ └── vertex.ts
│ ├── input
│ │ └── inputManager.ts
│ ├── math
│ │ ├── matrix4x4.ts
│ │ ├── transform.ts
│ │ ├── vector2.ts
│ │ └── vector3.ts
│ ├── message
│ │ ├── IMessageHandler.ts
│ │ ├── message.ts
│ │ ├── messageBus.ts
│ │ └── messageSubscriptionNode.ts
│ └── world
│ │ ├── scene.ts
│ │ ├── simObject.ts
│ │ ├── testZone.ts
│ │ ├── zone.ts
│ │ └── zoneManager.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 20
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── assets
│ ├── sounds
│ │ └── flap.mp3
│ ├── textures
│ │ ├── bg.png
│ │ ├── duck.png
│ │ ├── end.png
│ │ ├── grass.png
│ │ ├── middle.png
│ │ ├── playbtn.png
│ │ ├── restartbtn.png
│ │ ├── score.png
│ │ ├── title.png
│ │ └── tutorial.png
│ └── zones
│ │ └── testZone.json
│ ├── core
│ ├── assets
│ │ ├── IAsset.ts
│ │ ├── IAssetLoader.ts
│ │ ├── assetManager.ts
│ │ ├── imageAssetLoader.ts
│ │ └── jsonAssetLoader.ts
│ ├── audio
│ │ └── audioManager.ts
│ ├── behaviors
│ │ ├── IBehavior.ts
│ │ ├── IBehaviorBuilder.ts
│ │ ├── IBehaviorData.ts
│ │ ├── baseBehavior.ts
│ │ ├── behaviorManager.ts
│ │ ├── keyboardMovementBehavior.ts
│ │ └── rotationBehavior.ts
│ ├── collision
│ │ └── collisionManager.ts
│ ├── components
│ │ ├── ComponentManager.ts
│ │ ├── IComponent.ts
│ │ ├── IComponentBuilder.ts
│ │ ├── IComponentData.ts
│ │ ├── animatedSpriteComponent.ts
│ │ ├── baseComponent.ts
│ │ ├── collisionComponent.ts
│ │ └── spriteComponent.ts
│ ├── gl
│ │ ├── color.ts
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ ├── glBuffer.ts
│ │ ├── material.ts
│ │ ├── shader.ts
│ │ └── shaders
│ │ │ └── baseShader.ts
│ ├── graphics
│ │ ├── animatedSprite.ts
│ │ ├── color.ts
│ │ ├── material.ts
│ │ ├── materialManager.ts
│ │ ├── shapes2D
│ │ │ ├── IShape2D.ts
│ │ │ ├── circle2D.ts
│ │ │ └── rectangle2d.ts
│ │ ├── sprite.ts
│ │ ├── texture.ts
│ │ ├── textureManager.ts
│ │ └── vertex.ts
│ ├── input
│ │ └── inputManager.ts
│ ├── math
│ │ ├── matrix4x4.ts
│ │ ├── transform.ts
│ │ ├── vector2.ts
│ │ └── vector3.ts
│ ├── message
│ │ ├── IMessageHandler.ts
│ │ ├── message.ts
│ │ ├── messageBus.ts
│ │ └── messageSubscriptionNode.ts
│ └── world
│ │ ├── scene.ts
│ │ ├── simObject.ts
│ │ ├── testZone.ts
│ │ ├── zone.ts
│ │ └── zoneManager.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 20~21
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── assets
│ ├── sounds
│ │ └── flap.mp3
│ ├── textures
│ │ ├── bg.png
│ │ ├── duck.png
│ │ ├── end.png
│ │ ├── grass.png
│ │ ├── middle.png
│ │ ├── playbtn.png
│ │ ├── restartbtn.png
│ │ ├── score.png
│ │ ├── title.png
│ │ └── tutorial.png
│ └── zones
│ │ └── testZone.json
│ ├── core
│ ├── assets
│ │ ├── IAsset.ts
│ │ ├── IAssetLoader.ts
│ │ ├── assetManager.ts
│ │ ├── imageAssetLoader.ts
│ │ └── jsonAssetLoader.ts
│ ├── audio
│ │ └── audioManager.ts
│ ├── behaviors
│ │ ├── IBehavior.ts
│ │ ├── IBehaviorBuilder.ts
│ │ ├── IBehaviorData.ts
│ │ ├── baseBehavior.ts
│ │ ├── behaviorManager.ts
│ │ ├── keyboardMovementBehavior.ts
│ │ └── rotationBehavior.ts
│ ├── collision
│ │ └── collisionManager.ts
│ ├── components
│ │ ├── ComponentManager.ts
│ │ ├── IComponent.ts
│ │ ├── IComponentBuilder.ts
│ │ ├── IComponentData.ts
│ │ ├── animatedSpriteComponent.ts
│ │ ├── baseComponent.ts
│ │ ├── collisionComponent.ts
│ │ └── spriteComponent.ts
│ ├── gl
│ │ ├── color.ts
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ ├── glBuffer.ts
│ │ ├── material.ts
│ │ ├── shader.ts
│ │ └── shaders
│ │ │ └── baseShader.ts
│ ├── graphics
│ │ ├── animatedSprite.ts
│ │ ├── color.ts
│ │ ├── material.ts
│ │ ├── materialManager.ts
│ │ ├── shapes2D
│ │ │ ├── IShape2D.ts
│ │ │ ├── circle2D.ts
│ │ │ └── rectangle2d.ts
│ │ ├── sprite.ts
│ │ ├── texture.ts
│ │ ├── textureManager.ts
│ │ └── vertex.ts
│ ├── input
│ │ └── inputManager.ts
│ ├── math
│ │ ├── matrix4x4.ts
│ │ ├── transform.ts
│ │ ├── vector2.ts
│ │ └── vector3.ts
│ ├── message
│ │ ├── IMessageHandler.ts
│ │ ├── message.ts
│ │ ├── messageBus.ts
│ │ └── messageSubscriptionNode.ts
│ └── world
│ │ ├── scene.ts
│ │ ├── simObject.ts
│ │ ├── testZone.ts
│ │ ├── zone.ts
│ │ └── zoneManager.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 22~23
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── assets
│ ├── sounds
│ │ ├── dead.mp3
│ │ ├── flap.mp3
│ │ └── ting.mp3
│ ├── textures
│ │ ├── bg.png
│ │ ├── duck.png
│ │ ├── end.png
│ │ ├── grass.png
│ │ ├── middle.png
│ │ ├── playbtn.png
│ │ ├── restartbtn.png
│ │ ├── score.png
│ │ ├── title.png
│ │ └── tutorial.png
│ └── zones
│ │ └── testZone.json
│ ├── core
│ ├── assets
│ │ ├── IAsset.ts
│ │ ├── IAssetLoader.ts
│ │ ├── assetManager.ts
│ │ ├── imageAssetLoader.ts
│ │ └── jsonAssetLoader.ts
│ ├── audio
│ │ └── audioManager.ts
│ ├── behaviors
│ │ ├── IBehavior.ts
│ │ ├── IBehaviorBuilder.ts
│ │ ├── IBehaviorData.ts
│ │ ├── baseBehavior.ts
│ │ ├── behaviorManager.ts
│ │ ├── keyboardMovementBehavior.ts
│ │ ├── playerBehavior.ts
│ │ └── rotationBehavior.ts
│ ├── collision
│ │ └── collisionManager.ts
│ ├── components
│ │ ├── ComponentManager.ts
│ │ ├── IComponent.ts
│ │ ├── IComponentBuilder.ts
│ │ ├── IComponentData.ts
│ │ ├── animatedSpriteComponent.ts
│ │ ├── baseComponent.ts
│ │ ├── collisionComponent.ts
│ │ └── spriteComponent.ts
│ ├── gl
│ │ ├── color.ts
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ ├── glBuffer.ts
│ │ ├── material.ts
│ │ ├── shader.ts
│ │ └── shaders
│ │ │ └── baseShader.ts
│ ├── graphics
│ │ ├── animatedSprite.ts
│ │ ├── color.ts
│ │ ├── material.ts
│ │ ├── materialManager.ts
│ │ ├── shapes2D
│ │ │ ├── IShape2D.ts
│ │ │ ├── circle2D.ts
│ │ │ └── rectangle2d.ts
│ │ ├── sprite.ts
│ │ ├── texture.ts
│ │ ├── textureManager.ts
│ │ └── vertex.ts
│ ├── input
│ │ └── inputManager.ts
│ ├── math
│ │ ├── mathExtensions.ts
│ │ ├── matrix4x4.ts
│ │ ├── transform.ts
│ │ ├── vector2.ts
│ │ └── vector3.ts
│ ├── message
│ │ ├── IMessageHandler.ts
│ │ ├── message.ts
│ │ ├── messageBus.ts
│ │ └── messageSubscriptionNode.ts
│ └── world
│ │ ├── scene.ts
│ │ ├── simObject.ts
│ │ ├── testZone.ts
│ │ ├── zone.ts
│ │ └── zoneManager.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 24
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── assets
│ ├── sounds
│ │ ├── dead.mp3
│ │ ├── flap.mp3
│ │ └── ting.mp3
│ ├── textures
│ │ ├── bg.png
│ │ ├── duck.png
│ │ ├── end.png
│ │ ├── grass.png
│ │ ├── middle.png
│ │ ├── playbtn.png
│ │ ├── restartbtn.png
│ │ ├── score.png
│ │ ├── title.png
│ │ └── tutorial.png
│ └── zones
│ │ └── testZone.json
│ ├── core
│ ├── assets
│ │ ├── IAsset.ts
│ │ ├── IAssetLoader.ts
│ │ ├── assetManager.ts
│ │ ├── imageAssetLoader.ts
│ │ └── jsonAssetLoader.ts
│ ├── audio
│ │ └── audioManager.ts
│ ├── behaviors
│ │ ├── IBehavior.ts
│ │ ├── IBehaviorBuilder.ts
│ │ ├── IBehaviorData.ts
│ │ ├── baseBehavior.ts
│ │ ├── behaviorManager.ts
│ │ ├── keyboardMovementBehavior.ts
│ │ ├── playerBehavior.ts
│ │ ├── rotationBehavior.ts
│ │ └── scrollBehavior.ts
│ ├── collision
│ │ └── collisionManager.ts
│ ├── components
│ │ ├── ComponentManager.ts
│ │ ├── IComponent.ts
│ │ ├── IComponentBuilder.ts
│ │ ├── IComponentData.ts
│ │ ├── animatedSpriteComponent.ts
│ │ ├── baseComponent.ts
│ │ ├── collisionComponent.ts
│ │ └── spriteComponent.ts
│ ├── gl
│ │ ├── color.ts
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ ├── glBuffer.ts
│ │ ├── material.ts
│ │ ├── shader.ts
│ │ └── shaders
│ │ │ └── baseShader.ts
│ ├── graphics
│ │ ├── animatedSprite.ts
│ │ ├── color.ts
│ │ ├── material.ts
│ │ ├── materialManager.ts
│ │ ├── shapes2D
│ │ │ ├── IShape2D.ts
│ │ │ ├── circle2D.ts
│ │ │ └── rectangle2d.ts
│ │ ├── sprite.ts
│ │ ├── texture.ts
│ │ ├── textureManager.ts
│ │ └── vertex.ts
│ ├── input
│ │ └── inputManager.ts
│ ├── math
│ │ ├── mathExtensions.ts
│ │ ├── matrix4x4.ts
│ │ ├── transform.ts
│ │ ├── vector2.ts
│ │ └── vector3.ts
│ ├── message
│ │ ├── IMessageHandler.ts
│ │ ├── message.ts
│ │ ├── messageBus.ts
│ │ └── messageSubscriptionNode.ts
│ └── world
│ │ ├── scene.ts
│ │ ├── simObject.ts
│ │ ├── testZone.ts
│ │ ├── zone.ts
│ │ └── zoneManager.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 25
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── assets
│ ├── fonts
│ │ ├── text.png
│ │ └── text.txt
│ ├── sounds
│ │ ├── dead.mp3
│ │ ├── flap.mp3
│ │ └── ting.mp3
│ ├── textures
│ │ ├── bg.png
│ │ ├── duck.png
│ │ ├── end.png
│ │ ├── grass.png
│ │ ├── middle.png
│ │ ├── playbtn.png
│ │ ├── restartbtn.png
│ │ ├── score.png
│ │ ├── title.png
│ │ └── tutorial.png
│ └── zones
│ │ └── testZone.json
│ ├── core
│ ├── assets
│ │ ├── IAsset.ts
│ │ ├── IAssetLoader.ts
│ │ ├── assetManager.ts
│ │ ├── imageAssetLoader.ts
│ │ ├── jsonAssetLoader.ts
│ │ └── testAssetLoader.ts
│ ├── audio
│ │ └── audioManager.ts
│ ├── behaviors
│ │ ├── IBehavior.ts
│ │ ├── IBehaviorBuilder.ts
│ │ ├── IBehaviorData.ts
│ │ ├── baseBehavior.ts
│ │ ├── behaviorManager.ts
│ │ ├── keyboardMovementBehavior.ts
│ │ ├── playerBehavior.ts
│ │ ├── rotationBehavior.ts
│ │ └── scrollBehavior.ts
│ ├── collision
│ │ └── collisionManager.ts
│ ├── components
│ │ ├── ComponentManager.ts
│ │ ├── IComponent.ts
│ │ ├── IComponentBuilder.ts
│ │ ├── IComponentData.ts
│ │ ├── animatedSpriteComponent.ts
│ │ ├── baseComponent.ts
│ │ ├── collisionComponent.ts
│ │ └── spriteComponent.ts
│ ├── gl
│ │ ├── color.ts
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ ├── glBuffer.ts
│ │ ├── material.ts
│ │ ├── shader.ts
│ │ └── shaders
│ │ │ └── baseShader.ts
│ ├── graphics
│ │ ├── animatedSprite.ts
│ │ ├── bitmapFont.ts
│ │ ├── color.ts
│ │ ├── material.ts
│ │ ├── materialManager.ts
│ │ ├── shapes2D
│ │ │ ├── IShape2D.ts
│ │ │ ├── circle2D.ts
│ │ │ └── rectangle2d.ts
│ │ ├── sprite.ts
│ │ ├── texture.ts
│ │ ├── textureManager.ts
│ │ └── vertex.ts
│ ├── input
│ │ └── inputManager.ts
│ ├── math
│ │ ├── mathExtensions.ts
│ │ ├── matrix4x4.ts
│ │ ├── transform.ts
│ │ ├── vector2.ts
│ │ └── vector3.ts
│ ├── message
│ │ ├── IMessageHandler.ts
│ │ ├── message.ts
│ │ ├── messageBus.ts
│ │ └── messageSubscriptionNode.ts
│ └── world
│ │ ├── scene.ts
│ │ ├── simObject.ts
│ │ ├── testZone.ts
│ │ ├── zone.ts
│ │ └── zoneManager.ts
│ ├── index.html
│ └── packages.config
├── TS GameEngine 26
├── TS GameEngine.sln
└── TS GameEngine
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── TS GameEngine.csproj
│ ├── Web.Debug.config
│ ├── Web.Release.config
│ ├── Web.config
│ ├── app.ts
│ ├── assets
│ ├── fonts
│ │ ├── text.png
│ │ └── text.txt
│ ├── sounds
│ │ ├── dead.mp3
│ │ ├── flap.mp3
│ │ └── ting.mp3
│ ├── textures
│ │ ├── bg.png
│ │ ├── duck.png
│ │ ├── end.png
│ │ ├── grass.png
│ │ ├── middle.png
│ │ ├── playbtn.png
│ │ ├── restartbtn.png
│ │ ├── score.png
│ │ ├── title.png
│ │ └── tutorial.png
│ └── zones
│ │ └── testZone.json
│ ├── core
│ ├── assets
│ │ ├── IAsset.ts
│ │ ├── IAssetLoader.ts
│ │ ├── assetManager.ts
│ │ ├── imageAssetLoader.ts
│ │ ├── jsonAssetLoader.ts
│ │ └── testAssetLoader.ts
│ ├── audio
│ │ └── audioManager.ts
│ ├── behaviors
│ │ ├── IBehavior.ts
│ │ ├── IBehaviorBuilder.ts
│ │ ├── IBehaviorData.ts
│ │ ├── baseBehavior.ts
│ │ ├── behaviorManager.ts
│ │ ├── keyboardMovementBehavior.ts
│ │ ├── playerBehavior.ts
│ │ ├── rotationBehavior.ts
│ │ └── scrollBehavior.ts
│ ├── collision
│ │ └── collisionManager.ts
│ ├── components
│ │ ├── ComponentManager.ts
│ │ ├── IComponent.ts
│ │ ├── IComponentBuilder.ts
│ │ ├── IComponentData.ts
│ │ ├── animatedSpriteComponent.ts
│ │ ├── baseComponent.ts
│ │ ├── bitmapTextComponent.ts
│ │ ├── collisionComponent.ts
│ │ └── spriteComponent.ts
│ ├── gl
│ │ ├── color.ts
│ │ ├── engine.ts
│ │ ├── gl.ts
│ │ ├── glBuffer.ts
│ │ ├── material.ts
│ │ ├── shader.ts
│ │ └── shaders
│ │ │ └── baseShader.ts
│ ├── graphics
│ │ ├── animatedSprite.ts
│ │ ├── bitmapFont.ts
│ │ ├── bitmapFontManager.ts
│ │ ├── bitmapText.ts
│ │ ├── color.ts
│ │ ├── material.ts
│ │ ├── materialManager.ts
│ │ ├── shapes2D
│ │ │ ├── IShape2D.ts
│ │ │ ├── circle2D.ts
│ │ │ └── rectangle2d.ts
│ │ ├── sprite.ts
│ │ ├── texture.ts
│ │ ├── textureManager.ts
│ │ └── vertex.ts
│ ├── input
│ │ └── inputManager.ts
│ ├── math
│ │ ├── mathExtensions.ts
│ │ ├── matrix4x4.ts
│ │ ├── transform.ts
│ │ ├── vector2.ts
│ │ └── vector3.ts
│ ├── message
│ │ ├── IMessageHandler.ts
│ │ ├── message.ts
│ │ ├── messageBus.ts
│ │ └── messageSubscriptionNode.ts
│ └── world
│ │ ├── scene.ts
│ │ ├── simObject.ts
│ │ ├── testZone.ts
│ │ ├── zone.ts
│ │ └── zoneManager.ts
│ ├── index.html
│ └── packages.config
└── TS GameEngine 27
├── TS GameEngine.sln
└── TS GameEngine
├── Properties
└── AssemblyInfo.cs
├── TS GameEngine.csproj
├── Web.Debug.config
├── Web.Release.config
├── Web.config
├── app.ts
├── assets
├── fonts
│ ├── text.png
│ └── text.txt
├── sounds
│ ├── dead.mp3
│ ├── flap.mp3
│ └── ting.mp3
├── textures
│ ├── bg.png
│ ├── duck.png
│ ├── end.png
│ ├── grass.png
│ ├── middle.png
│ ├── playbtn.png
│ ├── restartbtn.png
│ ├── score.png
│ ├── title.png
│ └── tutorial.png
└── zones
│ └── testZone.json
├── core
├── assets
│ ├── IAsset.ts
│ ├── IAssetLoader.ts
│ ├── assetManager.ts
│ ├── imageAssetLoader.ts
│ ├── jsonAssetLoader.ts
│ └── testAssetLoader.ts
├── audio
│ └── audioManager.ts
├── behaviors
│ ├── IBehavior.ts
│ ├── IBehaviorBuilder.ts
│ ├── IBehaviorData.ts
│ ├── baseBehavior.ts
│ ├── behaviorManager.ts
│ ├── keyboardMovementBehavior.ts
│ ├── mouseClickBehavior.ts
│ ├── playerBehavior.ts
│ ├── rotationBehavior.ts
│ ├── scrollBehavior.ts
│ └── visibilityOnMessageBehavior.ts
├── collision
│ └── collisionManager.ts
├── components
│ ├── ComponentManager.ts
│ ├── IComponent.ts
│ ├── IComponentBuilder.ts
│ ├── IComponentData.ts
│ ├── animatedSpriteComponent.ts
│ ├── baseComponent.ts
│ ├── bitmapTextComponent.ts
│ ├── collisionComponent.ts
│ └── spriteComponent.ts
├── gl
│ ├── color.ts
│ ├── engine.ts
│ ├── gl.ts
│ ├── glBuffer.ts
│ ├── material.ts
│ ├── shader.ts
│ └── shaders
│ │ └── baseShader.ts
├── graphics
│ ├── animatedSprite.ts
│ ├── bitmapFont.ts
│ ├── bitmapFontManager.ts
│ ├── bitmapText.ts
│ ├── color.ts
│ ├── material.ts
│ ├── materialManager.ts
│ ├── shapes2D
│ │ ├── IShape2D.ts
│ │ ├── circle2D.ts
│ │ └── rectangle2d.ts
│ ├── sprite.ts
│ ├── texture.ts
│ ├── textureManager.ts
│ └── vertex.ts
├── input
│ └── inputManager.ts
├── math
│ ├── mathExtensions.ts
│ ├── matrix4x4.ts
│ ├── transform.ts
│ ├── vector2.ts
│ └── vector3.ts
├── message
│ ├── IMessageHandler.ts
│ ├── message.ts
│ ├── messageBus.ts
│ └── messageSubscriptionNode.ts
└── world
│ ├── scene.ts
│ ├── simObject.ts
│ ├── testZone.ts
│ ├── zone.ts
│ └── zoneManager.ts
├── index.html
└── packages.config
/README.md:
--------------------------------------------------------------------------------
1 | # TypeScript-GameEngine
2 | In this series I step through the process of making a simple game from the ground up using TypeScript and WebGL.
3 |
4 | Fork : https://www.youtube.com/watch?v=Hi3vyJQbULk&list=PLv8Ddw9K0JPiTHLMQw31Yh4qyTAcHRnJx
5 |
--------------------------------------------------------------------------------
/TS GameEngine 01/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 | export class Engine {
3 | public constructor() {
4 | console.log("Hello World");
5 | }
6 |
7 | private _count: number = 0;
8 |
9 | public start(): void {
10 | this.loop();
11 | }
12 |
13 | private loop(): void {
14 | this._count++;
15 | document.title = this._count.toString();
16 |
17 | requestAnimationFrame(this.loop.bind(this));
18 | }
19 | }
20 | }
21 |
22 | window.onload = function () {
23 | var e = new TSE.Engine();
24 | e.start();
25 | document.body.innerHTML += "Foo";
26 | }
--------------------------------------------------------------------------------
/TS GameEngine 01/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
8 |
9 | Some Text.
10 |
11 |
--------------------------------------------------------------------------------
/TS GameEngine 01/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 02/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine();
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 02/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 02/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 03/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine();
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 03/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 03/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 04/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine();
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 04/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 04/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 05/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine();
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 05/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 05/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 06/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine();
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 06/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 06/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 07~08/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine();
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 07~08/TS GameEngine/assets/textures/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 07~08/TS GameEngine/assets/textures/bg.png
--------------------------------------------------------------------------------
/TS GameEngine 07~08/TS GameEngine/assets/textures/duck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 07~08/TS GameEngine/assets/textures/duck.png
--------------------------------------------------------------------------------
/TS GameEngine 07~08/TS GameEngine/assets/textures/end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 07~08/TS GameEngine/assets/textures/end.png
--------------------------------------------------------------------------------
/TS GameEngine 07~08/TS GameEngine/assets/textures/grass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 07~08/TS GameEngine/assets/textures/grass.png
--------------------------------------------------------------------------------
/TS GameEngine 07~08/TS GameEngine/assets/textures/middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 07~08/TS GameEngine/assets/textures/middle.png
--------------------------------------------------------------------------------
/TS GameEngine 07~08/TS GameEngine/assets/textures/playbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 07~08/TS GameEngine/assets/textures/playbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 07~08/TS GameEngine/assets/textures/restartbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 07~08/TS GameEngine/assets/textures/restartbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 07~08/TS GameEngine/assets/textures/score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 07~08/TS GameEngine/assets/textures/score.png
--------------------------------------------------------------------------------
/TS GameEngine 07~08/TS GameEngine/assets/textures/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 07~08/TS GameEngine/assets/textures/title.png
--------------------------------------------------------------------------------
/TS GameEngine 07~08/TS GameEngine/assets/textures/tutorial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 07~08/TS GameEngine/assets/textures/tutorial.png
--------------------------------------------------------------------------------
/TS GameEngine 07~08/TS GameEngine/core/assets/IAsset.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset */
4 | export interface IAsset {
5 |
6 | /** The name of this asset. */
7 | readonly name: string;
8 |
9 | /** The data of this asset. */
10 | readonly data: any;
11 | }
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 07~08/TS GameEngine/core/assets/IAssetLoader.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset loader. */
4 | export interface IAssetLoader {
5 |
6 | /** The extensions supported by this asset loader. */
7 | readonly supportedExtensions: string[];
8 |
9 | /**
10 | * Loads an asset with the given name.
11 | * @param assetName The name of the asset to be loaded.
12 | */
13 | loadAsset(assetName: string): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 07~08/TS GameEngine/core/message/IMessageHandler.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IMessageHandler {
5 |
6 | onMessage(message: Message): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 07~08/TS GameEngine/core/message/messageSubscriptionNode.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class MessageSubscriptionNode {
5 |
6 | public message: Message;
7 |
8 | public handler: IMessageHandler;
9 |
10 |
11 | public constructor(message: Message, handler: IMessageHandler) {
12 | this.message = message;
13 | this.handler = handler;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 07~08/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 07~08/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 09/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine();
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 09/TS GameEngine/assets/textures/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 09/TS GameEngine/assets/textures/bg.png
--------------------------------------------------------------------------------
/TS GameEngine 09/TS GameEngine/assets/textures/duck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 09/TS GameEngine/assets/textures/duck.png
--------------------------------------------------------------------------------
/TS GameEngine 09/TS GameEngine/assets/textures/end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 09/TS GameEngine/assets/textures/end.png
--------------------------------------------------------------------------------
/TS GameEngine 09/TS GameEngine/assets/textures/grass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 09/TS GameEngine/assets/textures/grass.png
--------------------------------------------------------------------------------
/TS GameEngine 09/TS GameEngine/assets/textures/middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 09/TS GameEngine/assets/textures/middle.png
--------------------------------------------------------------------------------
/TS GameEngine 09/TS GameEngine/assets/textures/playbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 09/TS GameEngine/assets/textures/playbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 09/TS GameEngine/assets/textures/restartbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 09/TS GameEngine/assets/textures/restartbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 09/TS GameEngine/assets/textures/score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 09/TS GameEngine/assets/textures/score.png
--------------------------------------------------------------------------------
/TS GameEngine 09/TS GameEngine/assets/textures/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 09/TS GameEngine/assets/textures/title.png
--------------------------------------------------------------------------------
/TS GameEngine 09/TS GameEngine/assets/textures/tutorial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 09/TS GameEngine/assets/textures/tutorial.png
--------------------------------------------------------------------------------
/TS GameEngine 09/TS GameEngine/core/assets/IAsset.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset */
4 | export interface IAsset {
5 |
6 | /** The name of this asset. */
7 | readonly name: string;
8 |
9 | /** The data of this asset. */
10 | readonly data: any;
11 | }
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 09/TS GameEngine/core/assets/IAssetLoader.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset loader. */
4 | export interface IAssetLoader {
5 |
6 | /** The extensions supported by this asset loader. */
7 | readonly supportedExtensions: string[];
8 |
9 | /**
10 | * Loads an asset with the given name.
11 | * @param assetName The name of the asset to be loaded.
12 | */
13 | loadAsset(assetName: string): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 09/TS GameEngine/core/message/IMessageHandler.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IMessageHandler {
5 |
6 | onMessage(message: Message): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 09/TS GameEngine/core/message/messageSubscriptionNode.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class MessageSubscriptionNode {
5 |
6 | public message: Message;
7 |
8 | public handler: IMessageHandler;
9 |
10 |
11 | public constructor(message: Message, handler: IMessageHandler) {
12 | this.message = message;
13 | this.handler = handler;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 09/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 09/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 10/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine();
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 10/TS GameEngine/assets/textures/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 10/TS GameEngine/assets/textures/bg.png
--------------------------------------------------------------------------------
/TS GameEngine 10/TS GameEngine/assets/textures/duck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 10/TS GameEngine/assets/textures/duck.png
--------------------------------------------------------------------------------
/TS GameEngine 10/TS GameEngine/assets/textures/end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 10/TS GameEngine/assets/textures/end.png
--------------------------------------------------------------------------------
/TS GameEngine 10/TS GameEngine/assets/textures/grass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 10/TS GameEngine/assets/textures/grass.png
--------------------------------------------------------------------------------
/TS GameEngine 10/TS GameEngine/assets/textures/middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 10/TS GameEngine/assets/textures/middle.png
--------------------------------------------------------------------------------
/TS GameEngine 10/TS GameEngine/assets/textures/playbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 10/TS GameEngine/assets/textures/playbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 10/TS GameEngine/assets/textures/restartbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 10/TS GameEngine/assets/textures/restartbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 10/TS GameEngine/assets/textures/score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 10/TS GameEngine/assets/textures/score.png
--------------------------------------------------------------------------------
/TS GameEngine 10/TS GameEngine/assets/textures/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 10/TS GameEngine/assets/textures/title.png
--------------------------------------------------------------------------------
/TS GameEngine 10/TS GameEngine/assets/textures/tutorial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 10/TS GameEngine/assets/textures/tutorial.png
--------------------------------------------------------------------------------
/TS GameEngine 10/TS GameEngine/core/assets/IAsset.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset */
4 | export interface IAsset {
5 |
6 | /** The name of this asset. */
7 | readonly name: string;
8 |
9 | /** The data of this asset. */
10 | readonly data: any;
11 | }
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 10/TS GameEngine/core/assets/IAssetLoader.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset loader. */
4 | export interface IAssetLoader {
5 |
6 | /** The extensions supported by this asset loader. */
7 | readonly supportedExtensions: string[];
8 |
9 | /**
10 | * Loads an asset with the given name.
11 | * @param assetName The name of the asset to be loaded.
12 | */
13 | loadAsset(assetName: string): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 10/TS GameEngine/core/message/IMessageHandler.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IMessageHandler {
5 |
6 | onMessage(message: Message): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 10/TS GameEngine/core/message/messageSubscriptionNode.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class MessageSubscriptionNode {
5 |
6 | public message: Message;
7 |
8 | public handler: IMessageHandler;
9 |
10 |
11 | public constructor(message: Message, handler: IMessageHandler) {
12 | this.message = message;
13 | this.handler = handler;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 10/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 10/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 11/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine();
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 11/TS GameEngine/assets/textures/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 11/TS GameEngine/assets/textures/bg.png
--------------------------------------------------------------------------------
/TS GameEngine 11/TS GameEngine/assets/textures/duck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 11/TS GameEngine/assets/textures/duck.png
--------------------------------------------------------------------------------
/TS GameEngine 11/TS GameEngine/assets/textures/end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 11/TS GameEngine/assets/textures/end.png
--------------------------------------------------------------------------------
/TS GameEngine 11/TS GameEngine/assets/textures/grass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 11/TS GameEngine/assets/textures/grass.png
--------------------------------------------------------------------------------
/TS GameEngine 11/TS GameEngine/assets/textures/middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 11/TS GameEngine/assets/textures/middle.png
--------------------------------------------------------------------------------
/TS GameEngine 11/TS GameEngine/assets/textures/playbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 11/TS GameEngine/assets/textures/playbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 11/TS GameEngine/assets/textures/restartbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 11/TS GameEngine/assets/textures/restartbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 11/TS GameEngine/assets/textures/score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 11/TS GameEngine/assets/textures/score.png
--------------------------------------------------------------------------------
/TS GameEngine 11/TS GameEngine/assets/textures/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 11/TS GameEngine/assets/textures/title.png
--------------------------------------------------------------------------------
/TS GameEngine 11/TS GameEngine/assets/textures/tutorial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 11/TS GameEngine/assets/textures/tutorial.png
--------------------------------------------------------------------------------
/TS GameEngine 11/TS GameEngine/core/assets/IAsset.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset */
4 | export interface IAsset {
5 |
6 | /** The name of this asset. */
7 | readonly name: string;
8 |
9 | /** The data of this asset. */
10 | readonly data: any;
11 | }
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 11/TS GameEngine/core/assets/IAssetLoader.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset loader. */
4 | export interface IAssetLoader {
5 |
6 | /** The extensions supported by this asset loader. */
7 | readonly supportedExtensions: string[];
8 |
9 | /**
10 | * Loads an asset with the given name.
11 | * @param assetName The name of the asset to be loaded.
12 | */
13 | loadAsset(assetName: string): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 11/TS GameEngine/core/components/baseComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseComponent/* implements IComponent*/ {
5 |
6 | protected _owner: SimObject;
7 | //protected _data: IComponentData;
8 |
9 | public name: string;
10 |
11 |
12 | public constructor(name:string/*data: IComponentData*/) {
13 | //this._data = data;
14 | this.name = name;
15 | }
16 |
17 | public get owner(): SimObject {
18 | return this._owner;
19 | }
20 |
21 | public setOwner(owner: SimObject): void {
22 | this._owner = owner;
23 | }
24 |
25 | public load(): void {
26 | }
27 |
28 | public updateReady(): void {
29 | }
30 |
31 | public update(time: number): void {
32 | }
33 |
34 | public render(shader: Shader): void {
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/TS GameEngine 11/TS GameEngine/core/components/spriteComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 | export class SpriteComponent extends BaseComponent {
3 |
4 | private _sprite: Sprite;
5 |
6 |
7 | public constructor(name :string, materialName:string) {
8 | super(name);
9 | this._sprite = new Sprite(name, materialName);
10 | }
11 |
12 | public load(): void {
13 | this._sprite.load();
14 | }
15 |
16 |
17 | public render(shader: Shader): void {
18 | this._sprite.draw(shader, this.owner.worldMatrix);
19 |
20 | super.render(shader);
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/TS GameEngine 11/TS GameEngine/core/message/IMessageHandler.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IMessageHandler {
5 |
6 | onMessage(message: Message): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 11/TS GameEngine/core/message/messageSubscriptionNode.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class MessageSubscriptionNode {
5 |
6 | public message: Message;
7 |
8 | public handler: IMessageHandler;
9 |
10 |
11 | public constructor(message: Message, handler: IMessageHandler) {
12 | this.message = message;
13 | this.handler = handler;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 11/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 11/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 13/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine();
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 13/TS GameEngine/assets/textures/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 13/TS GameEngine/assets/textures/bg.png
--------------------------------------------------------------------------------
/TS GameEngine 13/TS GameEngine/assets/textures/duck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 13/TS GameEngine/assets/textures/duck.png
--------------------------------------------------------------------------------
/TS GameEngine 13/TS GameEngine/assets/textures/end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 13/TS GameEngine/assets/textures/end.png
--------------------------------------------------------------------------------
/TS GameEngine 13/TS GameEngine/assets/textures/grass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 13/TS GameEngine/assets/textures/grass.png
--------------------------------------------------------------------------------
/TS GameEngine 13/TS GameEngine/assets/textures/middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 13/TS GameEngine/assets/textures/middle.png
--------------------------------------------------------------------------------
/TS GameEngine 13/TS GameEngine/assets/textures/playbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 13/TS GameEngine/assets/textures/playbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 13/TS GameEngine/assets/textures/restartbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 13/TS GameEngine/assets/textures/restartbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 13/TS GameEngine/assets/textures/score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 13/TS GameEngine/assets/textures/score.png
--------------------------------------------------------------------------------
/TS GameEngine 13/TS GameEngine/assets/textures/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 13/TS GameEngine/assets/textures/title.png
--------------------------------------------------------------------------------
/TS GameEngine 13/TS GameEngine/assets/textures/tutorial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 13/TS GameEngine/assets/textures/tutorial.png
--------------------------------------------------------------------------------
/TS GameEngine 13/TS GameEngine/assets/zones/testZone.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "TestZone",
3 | "description": "A simple test zone for... testing.",
4 | "id": 0,
5 | "objects": [
6 | {
7 | "name": "parentObject",
8 | "transform": {
9 | "position": {
10 | "x": 300,
11 | "y": 300
12 | }
13 | },
14 | "children": [
15 | {
16 | "name": "testObject",
17 | "transform": {
18 | "position": {
19 | "x": 120,
20 | "y": 120
21 | }
22 | }
23 | }
24 | ]
25 | }
26 | ]
27 | }
--------------------------------------------------------------------------------
/TS GameEngine 13/TS GameEngine/core/assets/IAsset.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset */
4 | export interface IAsset {
5 |
6 | /** The name of this asset. */
7 | readonly name: string;
8 |
9 | /** The data of this asset. */
10 | readonly data: any;
11 | }
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 13/TS GameEngine/core/assets/IAssetLoader.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset loader. */
4 | export interface IAssetLoader {
5 |
6 | /** The extensions supported by this asset loader. */
7 | readonly supportedExtensions: string[];
8 |
9 | /**
10 | * Loads an asset with the given name.
11 | * @param assetName The name of the asset to be loaded.
12 | */
13 | loadAsset(assetName: string): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 13/TS GameEngine/core/components/spriteComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 | export class SpriteComponent extends BaseComponent {
3 |
4 | private _sprite: Sprite;
5 |
6 |
7 | public constructor(name :string, materialName:string) {
8 | super(name);
9 | this._sprite = new Sprite(name, materialName);
10 | }
11 |
12 | public load(): void {
13 | this._sprite.load();
14 | }
15 |
16 |
17 | public render(shader: Shader): void {
18 | this._sprite.draw(shader, this.owner.worldMatrix);
19 |
20 | super.render(shader);
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/TS GameEngine 13/TS GameEngine/core/message/IMessageHandler.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IMessageHandler {
5 |
6 | onMessage(message: Message): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 13/TS GameEngine/core/message/messageSubscriptionNode.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class MessageSubscriptionNode {
5 |
6 | public message: Message;
7 |
8 | public handler: IMessageHandler;
9 |
10 |
11 | public constructor(message: Message, handler: IMessageHandler) {
12 | this.message = message;
13 | this.handler = handler;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 13/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 13/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine();
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/assets/textures/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 14/TS GameEngine/assets/textures/bg.png
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/assets/textures/duck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 14/TS GameEngine/assets/textures/duck.png
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/assets/textures/end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 14/TS GameEngine/assets/textures/end.png
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/assets/textures/grass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 14/TS GameEngine/assets/textures/grass.png
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/assets/textures/middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 14/TS GameEngine/assets/textures/middle.png
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/assets/textures/playbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 14/TS GameEngine/assets/textures/playbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/assets/textures/restartbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 14/TS GameEngine/assets/textures/restartbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/assets/textures/score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 14/TS GameEngine/assets/textures/score.png
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/assets/textures/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 14/TS GameEngine/assets/textures/title.png
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/assets/textures/tutorial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 14/TS GameEngine/assets/textures/tutorial.png
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/core/assets/IAsset.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset */
4 | export interface IAsset {
5 |
6 | /** The name of this asset. */
7 | readonly name: string;
8 |
9 | /** The data of this asset. */
10 | readonly data: any;
11 | }
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/core/assets/IAssetLoader.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset loader. */
4 | export interface IAssetLoader {
5 |
6 | /** The extensions supported by this asset loader. */
7 | readonly supportedExtensions: string[];
8 |
9 | /**
10 | * Loads an asset with the given name.
11 | * @param assetName The name of the asset to be loaded.
12 | */
13 | loadAsset(assetName: string): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/core/components/ComponentManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export class ComponentManager {
4 |
5 | private static _registeredBuilders: { [type: string]: IComponentBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IComponentBuilder): void {
9 | ComponentManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractComponent(json: any): IComponent {
13 | if (json.type !== undefined) {
14 | if (ComponentManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return ComponentManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Component manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/core/components/IComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponent {
4 |
5 | name: string;
6 |
7 | readonly owner: SimObject;
8 | setOwner(owner: SimObject): void;
9 |
10 | load(): void;
11 |
12 | update(time: number): void;
13 |
14 | render(shader: Shader): void;
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/core/components/IComponentBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentBuilder {
4 |
5 | readonly type: string;
6 |
7 | buildFromJson(json: any): IComponent;
8 | }
9 | }
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/core/components/IComponentData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/core/components/baseComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseComponent implements IComponent {
5 |
6 | protected _owner: SimObject;
7 | protected _data: IComponentData;
8 |
9 | public name: string;
10 |
11 |
12 | public constructor(data: IComponentData) {
13 | this._data = data;
14 | this.name = data.name;
15 | }
16 |
17 | public get owner(): SimObject {
18 | return this._owner;
19 | }
20 |
21 | public setOwner(owner: SimObject): void {
22 | this._owner = owner;
23 | }
24 |
25 | public load(): void {
26 | }
27 |
28 | public updateReady(): void {
29 | }
30 |
31 | public update(time: number): void {
32 | }
33 |
34 | public render(shader: Shader): void {
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/core/message/IMessageHandler.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IMessageHandler {
5 |
6 | onMessage(message: Message): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/core/message/messageSubscriptionNode.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class MessageSubscriptionNode {
5 |
6 | public message: Message;
7 |
8 | public handler: IMessageHandler;
9 |
10 |
11 | public constructor(message: Message, handler: IMessageHandler) {
12 | this.message = message;
13 | this.handler = handler;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 14/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine();
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/assets/textures/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 15/TS GameEngine/assets/textures/bg.png
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/assets/textures/duck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 15/TS GameEngine/assets/textures/duck.png
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/assets/textures/end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 15/TS GameEngine/assets/textures/end.png
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/assets/textures/grass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 15/TS GameEngine/assets/textures/grass.png
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/assets/textures/middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 15/TS GameEngine/assets/textures/middle.png
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/assets/textures/playbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 15/TS GameEngine/assets/textures/playbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/assets/textures/restartbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 15/TS GameEngine/assets/textures/restartbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/assets/textures/score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 15/TS GameEngine/assets/textures/score.png
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/assets/textures/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 15/TS GameEngine/assets/textures/title.png
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/assets/textures/tutorial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 15/TS GameEngine/assets/textures/tutorial.png
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/core/assets/IAsset.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset */
4 | export interface IAsset {
5 |
6 | /** The name of this asset. */
7 | readonly name: string;
8 |
9 | /** The data of this asset. */
10 | readonly data: any;
11 | }
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/core/assets/IAssetLoader.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset loader. */
4 | export interface IAssetLoader {
5 |
6 | /** The extensions supported by this asset loader. */
7 | readonly supportedExtensions: string[];
8 |
9 | /**
10 | * Loads an asset with the given name.
11 | * @param assetName The name of the asset to be loaded.
12 | */
13 | loadAsset(assetName: string): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/core/behaviors/IBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehavior {
5 | name: string;
6 |
7 | setOwner( owner: SimObject ): void;
8 |
9 | updateReady(): void;
10 |
11 | update( time: number ): void;
12 |
13 | apply( userData: any ): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/core/behaviors/IBehaviorBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehaviorBuilder {
5 | readonly type: string;
6 | buildFromJson(json: any): IBehavior;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/core/behaviors/IBehaviorData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IBehaviorData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/core/behaviors/baseBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseBehavior implements IBehavior {
5 | public name: string;
6 |
7 | protected _data: IBehaviorData;
8 | protected _owner: SimObject;
9 |
10 | public constructor(data: IBehaviorData) {
11 | this._data = data;
12 | this.name = this._data.name;
13 | }
14 |
15 | public setOwner(owner: SimObject): void {
16 | this._owner = owner;
17 | }
18 |
19 | public updateReady(): void {
20 | }
21 |
22 | public update(time: number): void {
23 | }
24 |
25 | public apply(userData: any): void {
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/core/behaviors/behaviorManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class BehaviorManager {
5 | private static _registeredBuilders: { [type: string]: IBehaviorBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IBehaviorBuilder): void {
9 | BehaviorManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractBehavior(json: any): IBehavior {
13 | if (json.type !== undefined) {
14 | if (BehaviorManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return BehaviorManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Behavior manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/core/components/ComponentManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export class ComponentManager {
4 |
5 | private static _registeredBuilders: { [type: string]: IComponentBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IComponentBuilder): void {
9 | ComponentManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractComponent(json: any): IComponent {
13 | if (json.type !== undefined) {
14 | if (ComponentManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return ComponentManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Component manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/core/components/IComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponent {
4 |
5 | name: string;
6 |
7 | readonly owner: SimObject;
8 | setOwner(owner: SimObject): void;
9 |
10 | load(): void;
11 |
12 | update(time: number): void;
13 |
14 | render(shader: Shader): void;
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/core/components/IComponentBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentBuilder {
4 |
5 | readonly type: string;
6 |
7 | buildFromJson(json: any): IComponent;
8 | }
9 | }
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/core/components/IComponentData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/core/components/baseComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseComponent implements IComponent {
5 |
6 | protected _owner: SimObject;
7 | protected _data: IComponentData;
8 |
9 | public name: string;
10 |
11 |
12 | public constructor(data: IComponentData) {
13 | this._data = data;
14 | this.name = data.name;
15 | }
16 |
17 | public get owner(): SimObject {
18 | return this._owner;
19 | }
20 |
21 | public setOwner(owner: SimObject): void {
22 | this._owner = owner;
23 | }
24 |
25 | public load(): void {
26 | }
27 |
28 | public updateReady(): void {
29 | }
30 |
31 | public update(time: number): void {
32 | }
33 |
34 | public render(shader: Shader): void {
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/core/message/IMessageHandler.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IMessageHandler {
5 |
6 | onMessage(message: Message): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/core/message/messageSubscriptionNode.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class MessageSubscriptionNode {
5 |
6 | public message: Message;
7 |
8 | public handler: IMessageHandler;
9 |
10 |
11 | public constructor(message: Message, handler: IMessageHandler) {
12 | this.message = message;
13 | this.handler = handler;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 15/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine();
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/assets/textures/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 16/TS GameEngine/assets/textures/bg.png
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/assets/textures/duck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 16/TS GameEngine/assets/textures/duck.png
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/assets/textures/end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 16/TS GameEngine/assets/textures/end.png
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/assets/textures/grass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 16/TS GameEngine/assets/textures/grass.png
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/assets/textures/middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 16/TS GameEngine/assets/textures/middle.png
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/assets/textures/playbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 16/TS GameEngine/assets/textures/playbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/assets/textures/restartbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 16/TS GameEngine/assets/textures/restartbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/assets/textures/score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 16/TS GameEngine/assets/textures/score.png
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/assets/textures/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 16/TS GameEngine/assets/textures/title.png
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/assets/textures/tutorial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 16/TS GameEngine/assets/textures/tutorial.png
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/core/assets/IAsset.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset */
4 | export interface IAsset {
5 |
6 | /** The name of this asset. */
7 | readonly name: string;
8 |
9 | /** The data of this asset. */
10 | readonly data: any;
11 | }
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/core/assets/IAssetLoader.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset loader. */
4 | export interface IAssetLoader {
5 |
6 | /** The extensions supported by this asset loader. */
7 | readonly supportedExtensions: string[];
8 |
9 | /**
10 | * Loads an asset with the given name.
11 | * @param assetName The name of the asset to be loaded.
12 | */
13 | loadAsset(assetName: string): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/core/behaviors/IBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehavior {
5 | name: string;
6 |
7 | setOwner( owner: SimObject ): void;
8 |
9 | updateReady(): void;
10 |
11 | update( time: number ): void;
12 |
13 | apply( userData: any ): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/core/behaviors/IBehaviorBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehaviorBuilder {
5 | readonly type: string;
6 | buildFromJson(json: any): IBehavior;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/core/behaviors/IBehaviorData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IBehaviorData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/core/behaviors/baseBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseBehavior implements IBehavior {
5 | public name: string;
6 |
7 | protected _data: IBehaviorData;
8 | protected _owner: SimObject;
9 |
10 | public constructor(data: IBehaviorData) {
11 | this._data = data;
12 | this.name = this._data.name;
13 | }
14 |
15 | public setOwner(owner: SimObject): void {
16 | this._owner = owner;
17 | }
18 |
19 | public updateReady(): void {
20 | }
21 |
22 | public update(time: number): void {
23 | }
24 |
25 | public apply(userData: any): void {
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/core/behaviors/behaviorManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class BehaviorManager {
5 | private static _registeredBuilders: { [type: string]: IBehaviorBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IBehaviorBuilder): void {
9 | BehaviorManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractBehavior(json: any): IBehavior {
13 | if (json.type !== undefined) {
14 | if (BehaviorManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return BehaviorManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Behavior manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/core/components/ComponentManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export class ComponentManager {
4 |
5 | private static _registeredBuilders: { [type: string]: IComponentBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IComponentBuilder): void {
9 | ComponentManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractComponent(json: any): IComponent {
13 | if (json.type !== undefined) {
14 | if (ComponentManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return ComponentManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Component manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/core/components/IComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponent {
4 |
5 | name: string;
6 |
7 | readonly owner: SimObject;
8 | setOwner(owner: SimObject): void;
9 |
10 | load(): void;
11 |
12 | update(time: number): void;
13 |
14 | render(shader: Shader): void;
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/core/components/IComponentBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentBuilder {
4 |
5 | readonly type: string;
6 |
7 | buildFromJson(json: any): IComponent;
8 | }
9 | }
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/core/components/IComponentData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/core/components/baseComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseComponent implements IComponent {
5 |
6 | protected _owner: SimObject;
7 | protected _data: IComponentData;
8 |
9 | public name: string;
10 |
11 |
12 | public constructor(data: IComponentData) {
13 | this._data = data;
14 | this.name = data.name;
15 | }
16 |
17 | public get owner(): SimObject {
18 | return this._owner;
19 | }
20 |
21 | public setOwner(owner: SimObject): void {
22 | this._owner = owner;
23 | }
24 |
25 | public load(): void {
26 | }
27 |
28 | public updateReady(): void {
29 | }
30 |
31 | public update(time: number): void {
32 | }
33 |
34 | public render(shader: Shader): void {
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/core/message/IMessageHandler.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IMessageHandler {
5 |
6 | onMessage(message: Message): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/core/message/messageSubscriptionNode.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class MessageSubscriptionNode {
5 |
6 | public message: Message;
7 |
8 | public handler: IMessageHandler;
9 |
10 |
11 | public constructor(message: Message, handler: IMessageHandler) {
12 | this.message = message;
13 | this.handler = handler;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 16/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine();
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/assets/sounds/flap.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 17~18/TS GameEngine/assets/sounds/flap.mp3
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/assets/textures/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 17~18/TS GameEngine/assets/textures/bg.png
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/assets/textures/duck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 17~18/TS GameEngine/assets/textures/duck.png
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/assets/textures/end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 17~18/TS GameEngine/assets/textures/end.png
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/assets/textures/grass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 17~18/TS GameEngine/assets/textures/grass.png
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/assets/textures/middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 17~18/TS GameEngine/assets/textures/middle.png
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/assets/textures/playbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 17~18/TS GameEngine/assets/textures/playbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/assets/textures/restartbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 17~18/TS GameEngine/assets/textures/restartbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/assets/textures/score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 17~18/TS GameEngine/assets/textures/score.png
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/assets/textures/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 17~18/TS GameEngine/assets/textures/title.png
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/assets/textures/tutorial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 17~18/TS GameEngine/assets/textures/tutorial.png
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/core/assets/IAsset.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset */
4 | export interface IAsset {
5 |
6 | /** The name of this asset. */
7 | readonly name: string;
8 |
9 | /** The data of this asset. */
10 | readonly data: any;
11 | }
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/core/assets/IAssetLoader.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset loader. */
4 | export interface IAssetLoader {
5 |
6 | /** The extensions supported by this asset loader. */
7 | readonly supportedExtensions: string[];
8 |
9 | /**
10 | * Loads an asset with the given name.
11 | * @param assetName The name of the asset to be loaded.
12 | */
13 | loadAsset(assetName: string): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/core/behaviors/IBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehavior {
5 | name: string;
6 |
7 | setOwner( owner: SimObject ): void;
8 |
9 | updateReady(): void;
10 |
11 | update( time: number ): void;
12 |
13 | apply( userData: any ): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/core/behaviors/IBehaviorBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehaviorBuilder {
5 | readonly type: string;
6 | buildFromJson(json: any): IBehavior;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/core/behaviors/IBehaviorData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IBehaviorData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/core/behaviors/baseBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseBehavior implements IBehavior {
5 | public name: string;
6 |
7 | protected _data: IBehaviorData;
8 | protected _owner: SimObject;
9 |
10 | public constructor(data: IBehaviorData) {
11 | this._data = data;
12 | this.name = this._data.name;
13 | }
14 |
15 | public setOwner(owner: SimObject): void {
16 | this._owner = owner;
17 | }
18 |
19 | public updateReady(): void {
20 | }
21 |
22 | public update(time: number): void {
23 | }
24 |
25 | public apply(userData: any): void {
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/core/behaviors/behaviorManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class BehaviorManager {
5 | private static _registeredBuilders: { [type: string]: IBehaviorBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IBehaviorBuilder): void {
9 | BehaviorManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractBehavior(json: any): IBehavior {
13 | if (json.type !== undefined) {
14 | if (BehaviorManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return BehaviorManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Behavior manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/core/components/ComponentManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export class ComponentManager {
4 |
5 | private static _registeredBuilders: { [type: string]: IComponentBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IComponentBuilder): void {
9 | ComponentManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractComponent(json: any): IComponent {
13 | if (json.type !== undefined) {
14 | if (ComponentManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return ComponentManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Component manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/core/components/IComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponent {
4 |
5 | name: string;
6 |
7 | readonly owner: SimObject;
8 | setOwner(owner: SimObject): void;
9 |
10 | load(): void;
11 |
12 | update(time: number): void;
13 |
14 | render(shader: Shader): void;
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/core/components/IComponentBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentBuilder {
4 |
5 | readonly type: string;
6 |
7 | buildFromJson(json: any): IComponent;
8 | }
9 | }
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/core/components/IComponentData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/core/components/baseComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseComponent implements IComponent {
5 |
6 | protected _owner: SimObject;
7 | protected _data: IComponentData;
8 |
9 | public name: string;
10 |
11 |
12 | public constructor(data: IComponentData) {
13 | this._data = data;
14 | this.name = data.name;
15 | }
16 |
17 | public get owner(): SimObject {
18 | return this._owner;
19 | }
20 |
21 | public setOwner(owner: SimObject): void {
22 | this._owner = owner;
23 | }
24 |
25 | public load(): void {
26 | }
27 |
28 | public updateReady(): void {
29 | }
30 |
31 | public update(time: number): void {
32 | }
33 |
34 | public render(shader: Shader): void {
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/core/message/IMessageHandler.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IMessageHandler {
5 |
6 | onMessage(message: Message): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/core/message/messageSubscriptionNode.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class MessageSubscriptionNode {
5 |
6 | public message: Message;
7 |
8 | public handler: IMessageHandler;
9 |
10 |
11 | public constructor(message: Message, handler: IMessageHandler) {
12 | this.message = message;
13 | this.handler = handler;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 17~18/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine();
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/assets/sounds/flap.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 19/TS GameEngine/assets/sounds/flap.mp3
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/assets/textures/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 19/TS GameEngine/assets/textures/bg.png
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/assets/textures/duck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 19/TS GameEngine/assets/textures/duck.png
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/assets/textures/end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 19/TS GameEngine/assets/textures/end.png
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/assets/textures/grass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 19/TS GameEngine/assets/textures/grass.png
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/assets/textures/middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 19/TS GameEngine/assets/textures/middle.png
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/assets/textures/playbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 19/TS GameEngine/assets/textures/playbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/assets/textures/restartbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 19/TS GameEngine/assets/textures/restartbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/assets/textures/score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 19/TS GameEngine/assets/textures/score.png
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/assets/textures/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 19/TS GameEngine/assets/textures/title.png
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/assets/textures/tutorial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 19/TS GameEngine/assets/textures/tutorial.png
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/core/assets/IAsset.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset */
4 | export interface IAsset {
5 |
6 | /** The name of this asset. */
7 | readonly name: string;
8 |
9 | /** The data of this asset. */
10 | readonly data: any;
11 | }
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/core/assets/IAssetLoader.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset loader. */
4 | export interface IAssetLoader {
5 |
6 | /** The extensions supported by this asset loader. */
7 | readonly supportedExtensions: string[];
8 |
9 | /**
10 | * Loads an asset with the given name.
11 | * @param assetName The name of the asset to be loaded.
12 | */
13 | loadAsset(assetName: string): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/core/behaviors/IBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehavior {
5 | name: string;
6 |
7 | setOwner( owner: SimObject ): void;
8 |
9 | updateReady(): void;
10 |
11 | update( time: number ): void;
12 |
13 | apply( userData: any ): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/core/behaviors/IBehaviorBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehaviorBuilder {
5 | readonly type: string;
6 | buildFromJson(json: any): IBehavior;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/core/behaviors/IBehaviorData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IBehaviorData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/core/behaviors/baseBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseBehavior implements IBehavior {
5 | public name: string;
6 |
7 | protected _data: IBehaviorData;
8 | protected _owner: SimObject;
9 |
10 | public constructor(data: IBehaviorData) {
11 | this._data = data;
12 | this.name = this._data.name;
13 | }
14 |
15 | public setOwner(owner: SimObject): void {
16 | this._owner = owner;
17 | }
18 |
19 | public updateReady(): void {
20 | }
21 |
22 | public update(time: number): void {
23 | }
24 |
25 | public apply(userData: any): void {
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/core/behaviors/behaviorManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class BehaviorManager {
5 | private static _registeredBuilders: { [type: string]: IBehaviorBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IBehaviorBuilder): void {
9 | BehaviorManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractBehavior(json: any): IBehavior {
13 | if (json.type !== undefined) {
14 | if (BehaviorManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return BehaviorManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Behavior manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/core/components/ComponentManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export class ComponentManager {
4 |
5 | private static _registeredBuilders: { [type: string]: IComponentBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IComponentBuilder): void {
9 | ComponentManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractComponent(json: any): IComponent {
13 | if (json.type !== undefined) {
14 | if (ComponentManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return ComponentManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 | }
18 | throw new Error("Component manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/core/components/IComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponent {
4 |
5 | name: string;
6 |
7 | readonly owner: SimObject;
8 | setOwner(owner: SimObject): void;
9 |
10 | load(): void;
11 |
12 | update(time: number): void;
13 |
14 | render(shader: Shader): void;
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/core/components/IComponentBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentBuilder {
4 |
5 | readonly type: string;
6 |
7 | buildFromJson(json: any): IComponent;
8 | }
9 | }
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/core/components/IComponentData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/core/components/baseComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseComponent implements IComponent {
5 |
6 | protected _owner: SimObject;
7 | protected _data: IComponentData;
8 |
9 | public name: string;
10 |
11 |
12 | public constructor(data: IComponentData) {
13 | this._data = data;
14 | this.name = data.name;
15 | }
16 |
17 | public get owner(): SimObject {
18 | return this._owner;
19 | }
20 |
21 | public setOwner(owner: SimObject): void {
22 | this._owner = owner;
23 | }
24 |
25 | public load(): void {
26 | }
27 |
28 | public updateReady(): void {
29 | }
30 |
31 | public update(time: number): void {
32 | }
33 |
34 | public render(shader: Shader): void {
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/core/graphics/shapes2D/IShape2D.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IShape2D {
4 |
5 | position: Vector2;
6 |
7 | origin: Vector2;
8 |
9 | readonly offset: Vector2;
10 |
11 | setFromJson(json: any): void;
12 |
13 | intersects(other: IShape2D): boolean;
14 |
15 | pointInShape(point: Vector2): boolean;
16 | }
17 | }
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/core/message/IMessageHandler.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IMessageHandler {
5 |
6 | onMessage(message: Message): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/core/message/messageSubscriptionNode.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class MessageSubscriptionNode {
5 |
6 | public message: Message;
7 |
8 | public handler: IMessageHandler;
9 |
10 |
11 | public constructor(message: Message, handler: IMessageHandler) {
12 | this.message = message;
13 | this.handler = handler;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 19/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine();
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/assets/sounds/flap.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20/TS GameEngine/assets/sounds/flap.mp3
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/assets/textures/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20/TS GameEngine/assets/textures/bg.png
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/assets/textures/duck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20/TS GameEngine/assets/textures/duck.png
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/assets/textures/end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20/TS GameEngine/assets/textures/end.png
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/assets/textures/grass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20/TS GameEngine/assets/textures/grass.png
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/assets/textures/middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20/TS GameEngine/assets/textures/middle.png
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/assets/textures/playbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20/TS GameEngine/assets/textures/playbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/assets/textures/restartbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20/TS GameEngine/assets/textures/restartbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/assets/textures/score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20/TS GameEngine/assets/textures/score.png
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/assets/textures/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20/TS GameEngine/assets/textures/title.png
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/assets/textures/tutorial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20/TS GameEngine/assets/textures/tutorial.png
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/core/assets/IAsset.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset */
4 | export interface IAsset {
5 |
6 | /** The name of this asset. */
7 | readonly name: string;
8 |
9 | /** The data of this asset. */
10 | readonly data: any;
11 | }
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/core/assets/IAssetLoader.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset loader. */
4 | export interface IAssetLoader {
5 |
6 | /** The extensions supported by this asset loader. */
7 | readonly supportedExtensions: string[];
8 |
9 | /**
10 | * Loads an asset with the given name.
11 | * @param assetName The name of the asset to be loaded.
12 | */
13 | loadAsset(assetName: string): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/core/behaviors/IBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehavior {
5 | name: string;
6 |
7 | setOwner( owner: SimObject ): void;
8 |
9 | updateReady(): void;
10 |
11 | update( time: number ): void;
12 |
13 | apply( userData: any ): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/core/behaviors/IBehaviorBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehaviorBuilder {
5 | readonly type: string;
6 | buildFromJson(json: any): IBehavior;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/core/behaviors/IBehaviorData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IBehaviorData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/core/behaviors/baseBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseBehavior implements IBehavior {
5 | public name: string;
6 |
7 | protected _data: IBehaviorData;
8 | protected _owner: SimObject;
9 |
10 | public constructor(data: IBehaviorData) {
11 | this._data = data;
12 | this.name = this._data.name;
13 | }
14 |
15 | public setOwner(owner: SimObject): void {
16 | this._owner = owner;
17 | }
18 |
19 | public updateReady(): void {
20 | }
21 |
22 | public update(time: number): void {
23 | }
24 |
25 | public apply(userData: any): void {
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/core/behaviors/behaviorManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class BehaviorManager {
5 | private static _registeredBuilders: { [type: string]: IBehaviorBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IBehaviorBuilder): void {
9 | BehaviorManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractBehavior(json: any): IBehavior {
13 | if (json.type !== undefined) {
14 | if (BehaviorManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return BehaviorManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Behavior manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/core/components/ComponentManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export class ComponentManager {
4 |
5 | private static _registeredBuilders: { [type: string]: IComponentBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IComponentBuilder): void {
9 | ComponentManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractComponent(json: any): IComponent {
13 | if (json.type !== undefined) {
14 | if (ComponentManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return ComponentManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 | }
18 | throw new Error("Component manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/core/components/IComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponent {
4 |
5 | name: string;
6 |
7 | readonly owner: SimObject;
8 | setOwner(owner: SimObject): void;
9 |
10 | load(): void;
11 |
12 | update(time: number): void;
13 |
14 | render(shader: Shader): void;
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/core/components/IComponentBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentBuilder {
4 |
5 | readonly type: string;
6 |
7 | buildFromJson(json: any): IComponent;
8 | }
9 | }
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/core/components/IComponentData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/core/components/baseComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseComponent implements IComponent {
5 |
6 | protected _owner: SimObject;
7 | protected _data: IComponentData;
8 |
9 | public name: string;
10 |
11 |
12 | public constructor(data: IComponentData) {
13 | this._data = data;
14 | this.name = data.name;
15 | }
16 |
17 | public get owner(): SimObject {
18 | return this._owner;
19 | }
20 |
21 | public setOwner(owner: SimObject): void {
22 | this._owner = owner;
23 | }
24 |
25 | public load(): void {
26 | }
27 |
28 | public updateReady(): void {
29 | }
30 |
31 | public update(time: number): void {
32 | }
33 |
34 | public render(shader: Shader): void {
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/core/graphics/shapes2D/IShape2D.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IShape2D {
4 |
5 | position: Vector2;
6 |
7 | origin: Vector2;
8 |
9 | readonly offset: Vector2;
10 |
11 | setFromJson(json: any): void;
12 |
13 | intersects(other: IShape2D): boolean;
14 |
15 | pointInShape(point: Vector2): boolean;
16 | }
17 | }
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/core/message/IMessageHandler.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IMessageHandler {
5 |
6 | onMessage(message: Message): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/core/message/messageSubscriptionNode.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class MessageSubscriptionNode {
5 |
6 | public message: Message;
7 |
8 | public handler: IMessageHandler;
9 |
10 |
11 | public constructor(message: Message, handler: IMessageHandler) {
12 | this.message = message;
13 | this.handler = handler;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 20/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine();
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/assets/sounds/flap.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20~21/TS GameEngine/assets/sounds/flap.mp3
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/assets/textures/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20~21/TS GameEngine/assets/textures/bg.png
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/assets/textures/duck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20~21/TS GameEngine/assets/textures/duck.png
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/assets/textures/end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20~21/TS GameEngine/assets/textures/end.png
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/assets/textures/grass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20~21/TS GameEngine/assets/textures/grass.png
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/assets/textures/middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20~21/TS GameEngine/assets/textures/middle.png
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/assets/textures/playbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20~21/TS GameEngine/assets/textures/playbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/assets/textures/restartbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20~21/TS GameEngine/assets/textures/restartbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/assets/textures/score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20~21/TS GameEngine/assets/textures/score.png
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/assets/textures/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20~21/TS GameEngine/assets/textures/title.png
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/assets/textures/tutorial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 20~21/TS GameEngine/assets/textures/tutorial.png
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/core/assets/IAsset.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset */
4 | export interface IAsset {
5 |
6 | /** The name of this asset. */
7 | readonly name: string;
8 |
9 | /** The data of this asset. */
10 | readonly data: any;
11 | }
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/core/assets/IAssetLoader.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset loader. */
4 | export interface IAssetLoader {
5 |
6 | /** The extensions supported by this asset loader. */
7 | readonly supportedExtensions: string[];
8 |
9 | /**
10 | * Loads an asset with the given name.
11 | * @param assetName The name of the asset to be loaded.
12 | */
13 | loadAsset(assetName: string): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/core/behaviors/IBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehavior {
5 | name: string;
6 |
7 | setOwner( owner: SimObject ): void;
8 |
9 | updateReady(): void;
10 |
11 | update( time: number ): void;
12 |
13 | apply( userData: any ): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/core/behaviors/IBehaviorBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehaviorBuilder {
5 | readonly type: string;
6 | buildFromJson(json: any): IBehavior;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/core/behaviors/IBehaviorData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IBehaviorData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/core/behaviors/baseBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseBehavior implements IBehavior {
5 | public name: string;
6 |
7 | protected _data: IBehaviorData;
8 | protected _owner: SimObject;
9 |
10 | public constructor(data: IBehaviorData) {
11 | this._data = data;
12 | this.name = this._data.name;
13 | }
14 |
15 | public setOwner(owner: SimObject): void {
16 | this._owner = owner;
17 | }
18 |
19 | public updateReady(): void {
20 | }
21 |
22 | public update(time: number): void {
23 | }
24 |
25 | public apply(userData: any): void {
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/core/behaviors/behaviorManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class BehaviorManager {
5 | private static _registeredBuilders: { [type: string]: IBehaviorBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IBehaviorBuilder): void {
9 | BehaviorManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractBehavior(json: any): IBehavior {
13 | if (json.type !== undefined) {
14 | if (BehaviorManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return BehaviorManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Behavior manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/core/components/ComponentManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export class ComponentManager {
4 |
5 | private static _registeredBuilders: { [type: string]: IComponentBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IComponentBuilder): void {
9 | ComponentManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractComponent(json: any): IComponent {
13 | if (json.type !== undefined) {
14 | if (ComponentManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return ComponentManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 | }
18 | throw new Error("Component manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/core/components/IComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponent {
4 |
5 | name: string;
6 |
7 | readonly owner: SimObject;
8 | setOwner(owner: SimObject): void;
9 |
10 | load(): void;
11 |
12 | update(time: number): void;
13 |
14 | render(shader: Shader): void;
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/core/components/IComponentBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentBuilder {
4 |
5 | readonly type: string;
6 |
7 | buildFromJson(json: any): IComponent;
8 | }
9 | }
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/core/components/IComponentData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/core/components/baseComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseComponent implements IComponent {
5 |
6 | protected _owner: SimObject;
7 | protected _data: IComponentData;
8 |
9 | public name: string;
10 |
11 |
12 | public constructor(data: IComponentData) {
13 | this._data = data;
14 | this.name = data.name;
15 | }
16 |
17 | public get owner(): SimObject {
18 | return this._owner;
19 | }
20 |
21 | public setOwner(owner: SimObject): void {
22 | this._owner = owner;
23 | }
24 |
25 | public load(): void {
26 | }
27 |
28 | public updateReady(): void {
29 | }
30 |
31 | public update(time: number): void {
32 | }
33 |
34 | public render(shader: Shader): void {
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/core/graphics/shapes2D/IShape2D.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IShape2D {
4 |
5 | position: Vector2;
6 |
7 | origin: Vector2;
8 |
9 | readonly offset: Vector2;
10 |
11 | setFromJson(json: any): void;
12 |
13 | intersects(other: IShape2D): boolean;
14 |
15 | pointInShape(point: Vector2): boolean;
16 | }
17 | }
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/core/message/IMessageHandler.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IMessageHandler {
5 |
6 | onMessage(message: Message): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/core/message/messageSubscriptionNode.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class MessageSubscriptionNode {
5 |
6 | public message: Message;
7 |
8 | public handler: IMessageHandler;
9 |
10 |
11 | public constructor(message: Message, handler: IMessageHandler) {
12 | this.message = message;
13 | this.handler = handler;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 20~21/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine(320, 480);
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/assets/sounds/dead.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 22~23/TS GameEngine/assets/sounds/dead.mp3
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/assets/sounds/flap.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 22~23/TS GameEngine/assets/sounds/flap.mp3
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/assets/sounds/ting.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 22~23/TS GameEngine/assets/sounds/ting.mp3
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/assets/textures/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 22~23/TS GameEngine/assets/textures/bg.png
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/assets/textures/duck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 22~23/TS GameEngine/assets/textures/duck.png
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/assets/textures/end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 22~23/TS GameEngine/assets/textures/end.png
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/assets/textures/grass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 22~23/TS GameEngine/assets/textures/grass.png
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/assets/textures/middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 22~23/TS GameEngine/assets/textures/middle.png
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/assets/textures/playbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 22~23/TS GameEngine/assets/textures/playbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/assets/textures/restartbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 22~23/TS GameEngine/assets/textures/restartbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/assets/textures/score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 22~23/TS GameEngine/assets/textures/score.png
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/assets/textures/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 22~23/TS GameEngine/assets/textures/title.png
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/assets/textures/tutorial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 22~23/TS GameEngine/assets/textures/tutorial.png
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/core/assets/IAsset.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset */
4 | export interface IAsset {
5 |
6 | /** The name of this asset. */
7 | readonly name: string;
8 |
9 | /** The data of this asset. */
10 | readonly data: any;
11 | }
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/core/assets/IAssetLoader.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset loader. */
4 | export interface IAssetLoader {
5 |
6 | /** The extensions supported by this asset loader. */
7 | readonly supportedExtensions: string[];
8 |
9 | /**
10 | * Loads an asset with the given name.
11 | * @param assetName The name of the asset to be loaded.
12 | */
13 | loadAsset(assetName: string): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/core/behaviors/IBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehavior {
5 | name: string;
6 |
7 | setOwner( owner: SimObject ): void;
8 |
9 | updateReady(): void;
10 |
11 | update( time: number ): void;
12 |
13 | apply( userData: any ): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/core/behaviors/IBehaviorBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehaviorBuilder {
5 | readonly type: string;
6 | buildFromJson(json: any): IBehavior;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/core/behaviors/IBehaviorData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IBehaviorData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/core/behaviors/baseBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseBehavior implements IBehavior {
5 | public name: string;
6 |
7 | protected _data: IBehaviorData;
8 | protected _owner: SimObject;
9 |
10 | public constructor(data: IBehaviorData) {
11 | this._data = data;
12 | this.name = this._data.name;
13 | }
14 |
15 | public setOwner(owner: SimObject): void {
16 | this._owner = owner;
17 | }
18 |
19 | public updateReady(): void {
20 | }
21 |
22 | public update(time: number): void {
23 | }
24 |
25 | public apply(userData: any): void {
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/core/behaviors/behaviorManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class BehaviorManager {
5 | private static _registeredBuilders: { [type: string]: IBehaviorBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IBehaviorBuilder): void {
9 | BehaviorManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractBehavior(json: any): IBehavior {
13 | if (json.type !== undefined) {
14 | if (BehaviorManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return BehaviorManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Behavior manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/core/components/ComponentManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export class ComponentManager {
4 |
5 | private static _registeredBuilders: { [type: string]: IComponentBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IComponentBuilder): void {
9 | ComponentManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractComponent(json: any): IComponent {
13 | if (json.type !== undefined) {
14 | if (ComponentManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return ComponentManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Component manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/core/components/IComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponent {
4 |
5 | name: string;
6 |
7 | readonly owner: SimObject;
8 | setOwner(owner: SimObject): void;
9 |
10 | load(): void;
11 |
12 | updateReady(): void;
13 |
14 | update(time: number): void;
15 |
16 | render(shader: Shader): void;
17 | }
18 | }
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/core/components/IComponentBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentBuilder {
4 |
5 | readonly type: string;
6 |
7 | buildFromJson(json: any): IComponent;
8 | }
9 | }
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/core/components/IComponentData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/core/components/baseComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseComponent implements IComponent {
5 |
6 | protected _owner: SimObject;
7 | protected _data: IComponentData;
8 |
9 | public name: string;
10 |
11 |
12 | public constructor(data: IComponentData) {
13 | this._data = data;
14 | this.name = data.name;
15 | }
16 |
17 | public get owner(): SimObject {
18 | return this._owner;
19 | }
20 |
21 | public setOwner(owner: SimObject): void {
22 | this._owner = owner;
23 | }
24 |
25 | public load(): void {
26 | }
27 |
28 | public updateReady(): void {
29 | }
30 |
31 | public update(time: number): void {
32 | }
33 |
34 | public render(shader: Shader): void {
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/core/graphics/shapes2D/IShape2D.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IShape2D {
4 |
5 | position: Vector2;
6 |
7 | origin: Vector2;
8 |
9 | readonly offset: Vector2;
10 |
11 | setFromJson(json: any): void;
12 |
13 | intersects(other: IShape2D): boolean;
14 |
15 | pointInShape(point: Vector2): boolean;
16 | }
17 | }
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/core/math/mathExtensions.ts:
--------------------------------------------------------------------------------
1 | interface Math {
2 | clamp(value: number, min: number, max: number): number;
3 | degToRad(degrees: number): number;
4 | radToDeg(radians: number): number;
5 | }
6 |
7 | (Math as any).clamp = (value: number, min: number, max: number): number => {
8 | if (value < min) {
9 | return min;
10 | }
11 | if (value > max) {
12 | return max;
13 | }
14 | return value;
15 | }
16 |
17 | (Math as any).degToRad = (degrees: number): number => {
18 | return degrees * Math.PI / 180.0;
19 | }
20 |
21 | (Math as any).radToDeg = (radians: number): number => {
22 | return radians * 180.0 / Math.PI;
23 | }
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/core/message/IMessageHandler.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IMessageHandler {
5 |
6 | onMessage(message: Message): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/core/message/messageSubscriptionNode.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class MessageSubscriptionNode {
5 |
6 | public message: Message;
7 |
8 | public handler: IMessageHandler;
9 |
10 |
11 | public constructor(message: Message, handler: IMessageHandler) {
12 | this.message = message;
13 | this.handler = handler;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 22~23/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine(320, 480);
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/assets/sounds/dead.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 24/TS GameEngine/assets/sounds/dead.mp3
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/assets/sounds/flap.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 24/TS GameEngine/assets/sounds/flap.mp3
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/assets/sounds/ting.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 24/TS GameEngine/assets/sounds/ting.mp3
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/assets/textures/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 24/TS GameEngine/assets/textures/bg.png
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/assets/textures/duck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 24/TS GameEngine/assets/textures/duck.png
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/assets/textures/end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 24/TS GameEngine/assets/textures/end.png
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/assets/textures/grass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 24/TS GameEngine/assets/textures/grass.png
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/assets/textures/middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 24/TS GameEngine/assets/textures/middle.png
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/assets/textures/playbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 24/TS GameEngine/assets/textures/playbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/assets/textures/restartbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 24/TS GameEngine/assets/textures/restartbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/assets/textures/score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 24/TS GameEngine/assets/textures/score.png
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/assets/textures/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 24/TS GameEngine/assets/textures/title.png
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/assets/textures/tutorial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 24/TS GameEngine/assets/textures/tutorial.png
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/core/assets/IAsset.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset */
4 | export interface IAsset {
5 |
6 | /** The name of this asset. */
7 | readonly name: string;
8 |
9 | /** The data of this asset. */
10 | readonly data: any;
11 | }
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/core/assets/IAssetLoader.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset loader. */
4 | export interface IAssetLoader {
5 |
6 | /** The extensions supported by this asset loader. */
7 | readonly supportedExtensions: string[];
8 |
9 | /**
10 | * Loads an asset with the given name.
11 | * @param assetName The name of the asset to be loaded.
12 | */
13 | loadAsset(assetName: string): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/core/behaviors/IBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehavior {
5 | name: string;
6 |
7 | setOwner( owner: SimObject ): void;
8 |
9 | updateReady(): void;
10 |
11 | update( time: number ): void;
12 |
13 | apply( userData: any ): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/core/behaviors/IBehaviorBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehaviorBuilder {
5 | readonly type: string;
6 | buildFromJson(json: any): IBehavior;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/core/behaviors/IBehaviorData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IBehaviorData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/core/behaviors/baseBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseBehavior implements IBehavior {
5 | public name: string;
6 |
7 | protected _data: IBehaviorData;
8 | protected _owner: SimObject;
9 |
10 | public constructor(data: IBehaviorData) {
11 | this._data = data;
12 | this.name = this._data.name;
13 | }
14 |
15 | public setOwner(owner: SimObject): void {
16 | this._owner = owner;
17 | }
18 |
19 | public updateReady(): void {
20 | }
21 |
22 | public update(time: number): void {
23 | }
24 |
25 | public apply(userData: any): void {
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/core/behaviors/behaviorManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class BehaviorManager {
5 | private static _registeredBuilders: { [type: string]: IBehaviorBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IBehaviorBuilder): void {
9 | BehaviorManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractBehavior(json: any): IBehavior {
13 | if (json.type !== undefined) {
14 | if (BehaviorManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return BehaviorManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Behavior manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/core/components/ComponentManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export class ComponentManager {
4 |
5 | private static _registeredBuilders: { [type: string]: IComponentBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IComponentBuilder): void {
9 | ComponentManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractComponent(json: any): IComponent {
13 | if (json.type !== undefined) {
14 | if (ComponentManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return ComponentManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Component manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/core/components/IComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponent {
4 |
5 | name: string;
6 |
7 | readonly owner: SimObject;
8 | setOwner(owner: SimObject): void;
9 |
10 | load(): void;
11 |
12 | updateReady(): void;
13 |
14 | update(time: number): void;
15 |
16 | render(shader: Shader): void;
17 | }
18 | }
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/core/components/IComponentBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentBuilder {
4 |
5 | readonly type: string;
6 |
7 | buildFromJson(json: any): IComponent;
8 | }
9 | }
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/core/components/IComponentData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/core/components/baseComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseComponent implements IComponent {
5 |
6 | protected _owner: SimObject;
7 | protected _data: IComponentData;
8 |
9 | public name: string;
10 |
11 |
12 | public constructor(data: IComponentData) {
13 | this._data = data;
14 | this.name = data.name;
15 | }
16 |
17 | public get owner(): SimObject {
18 | return this._owner;
19 | }
20 |
21 | public setOwner(owner: SimObject): void {
22 | this._owner = owner;
23 | }
24 |
25 | public load(): void {
26 | }
27 |
28 | public updateReady(): void {
29 | }
30 |
31 | public update(time: number): void {
32 | }
33 |
34 | public render(shader: Shader): void {
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/core/graphics/shapes2D/IShape2D.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IShape2D {
4 |
5 | position: Vector2;
6 |
7 | origin: Vector2;
8 |
9 | readonly offset: Vector2;
10 |
11 | setFromJson(json: any): void;
12 |
13 | intersects(other: IShape2D): boolean;
14 |
15 | pointInShape(point: Vector2): boolean;
16 | }
17 | }
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/core/math/mathExtensions.ts:
--------------------------------------------------------------------------------
1 | interface Math {
2 | clamp(value: number, min: number, max: number): number;
3 | degToRad(degrees: number): number;
4 | radToDeg(radians: number): number;
5 | }
6 |
7 | (Math as any).clamp = (value: number, min: number, max: number): number => {
8 | if (value < min) {
9 | return min;
10 | }
11 | if (value > max) {
12 | return max;
13 | }
14 | return value;
15 | }
16 |
17 | (Math as any).degToRad = (degrees: number): number => {
18 | return degrees * Math.PI / 180.0;
19 | }
20 |
21 | (Math as any).radToDeg = (radians: number): number => {
22 | return radians * 180.0 / Math.PI;
23 | }
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/core/message/IMessageHandler.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IMessageHandler {
5 |
6 | onMessage(message: Message): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/core/message/messageSubscriptionNode.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class MessageSubscriptionNode {
5 |
6 | public message: Message;
7 |
8 | public handler: IMessageHandler;
9 |
10 |
11 | public constructor(message: Message, handler: IMessageHandler) {
12 | this.message = message;
13 | this.handler = handler;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 24/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine(320, 480);
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/assets/fonts/text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 25/TS GameEngine/assets/fonts/text.png
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/assets/sounds/dead.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 25/TS GameEngine/assets/sounds/dead.mp3
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/assets/sounds/flap.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 25/TS GameEngine/assets/sounds/flap.mp3
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/assets/sounds/ting.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 25/TS GameEngine/assets/sounds/ting.mp3
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/assets/textures/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 25/TS GameEngine/assets/textures/bg.png
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/assets/textures/duck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 25/TS GameEngine/assets/textures/duck.png
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/assets/textures/end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 25/TS GameEngine/assets/textures/end.png
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/assets/textures/grass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 25/TS GameEngine/assets/textures/grass.png
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/assets/textures/middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 25/TS GameEngine/assets/textures/middle.png
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/assets/textures/playbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 25/TS GameEngine/assets/textures/playbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/assets/textures/restartbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 25/TS GameEngine/assets/textures/restartbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/assets/textures/score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 25/TS GameEngine/assets/textures/score.png
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/assets/textures/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 25/TS GameEngine/assets/textures/title.png
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/assets/textures/tutorial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 25/TS GameEngine/assets/textures/tutorial.png
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/core/assets/IAsset.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset */
4 | export interface IAsset {
5 |
6 | /** The name of this asset. */
7 | readonly name: string;
8 |
9 | /** The data of this asset. */
10 | readonly data: any;
11 | }
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/core/assets/IAssetLoader.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset loader. */
4 | export interface IAssetLoader {
5 |
6 | /** The extensions supported by this asset loader. */
7 | readonly supportedExtensions: string[];
8 |
9 | /**
10 | * Loads an asset with the given name.
11 | * @param assetName The name of the asset to be loaded.
12 | */
13 | loadAsset(assetName: string): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/core/behaviors/IBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehavior {
5 | name: string;
6 |
7 | setOwner( owner: SimObject ): void;
8 |
9 | updateReady(): void;
10 |
11 | update( time: number ): void;
12 |
13 | apply( userData: any ): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/core/behaviors/IBehaviorBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehaviorBuilder {
5 | readonly type: string;
6 | buildFromJson(json: any): IBehavior;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/core/behaviors/IBehaviorData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IBehaviorData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/core/behaviors/baseBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseBehavior implements IBehavior {
5 | public name: string;
6 |
7 | protected _data: IBehaviorData;
8 | protected _owner: SimObject;
9 |
10 | public constructor(data: IBehaviorData) {
11 | this._data = data;
12 | this.name = this._data.name;
13 | }
14 |
15 | public setOwner(owner: SimObject): void {
16 | this._owner = owner;
17 | }
18 |
19 | public updateReady(): void {
20 | }
21 |
22 | public update(time: number): void {
23 | }
24 |
25 | public apply(userData: any): void {
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/core/behaviors/behaviorManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class BehaviorManager {
5 | private static _registeredBuilders: { [type: string]: IBehaviorBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IBehaviorBuilder): void {
9 | BehaviorManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractBehavior(json: any): IBehavior {
13 | if (json.type !== undefined) {
14 | if (BehaviorManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return BehaviorManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Behavior manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/core/components/ComponentManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export class ComponentManager {
4 |
5 | private static _registeredBuilders: { [type: string]: IComponentBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IComponentBuilder): void {
9 | ComponentManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractComponent(json: any): IComponent {
13 | if (json.type !== undefined) {
14 | if (ComponentManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return ComponentManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Component manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/core/components/IComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponent {
4 |
5 | name: string;
6 |
7 | readonly owner: SimObject;
8 | setOwner(owner: SimObject): void;
9 |
10 | load(): void;
11 |
12 | updateReady(): void;
13 |
14 | update(time: number): void;
15 |
16 | render(shader: Shader): void;
17 | }
18 | }
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/core/components/IComponentBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentBuilder {
4 |
5 | readonly type: string;
6 |
7 | buildFromJson(json: any): IComponent;
8 | }
9 | }
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/core/components/IComponentData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/core/components/baseComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseComponent implements IComponent {
5 |
6 | protected _owner: SimObject;
7 | protected _data: IComponentData;
8 |
9 | public name: string;
10 |
11 |
12 | public constructor(data: IComponentData) {
13 | this._data = data;
14 | this.name = data.name;
15 | }
16 |
17 | public get owner(): SimObject {
18 | return this._owner;
19 | }
20 |
21 | public setOwner(owner: SimObject): void {
22 | this._owner = owner;
23 | }
24 |
25 | public load(): void {
26 | }
27 |
28 | public updateReady(): void {
29 | }
30 |
31 | public update(time: number): void {
32 | }
33 |
34 | public render(shader: Shader): void {
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/core/graphics/shapes2D/IShape2D.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IShape2D {
4 |
5 | position: Vector2;
6 |
7 | origin: Vector2;
8 |
9 | readonly offset: Vector2;
10 |
11 | setFromJson(json: any): void;
12 |
13 | intersects(other: IShape2D): boolean;
14 |
15 | pointInShape(point: Vector2): boolean;
16 | }
17 | }
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/core/math/mathExtensions.ts:
--------------------------------------------------------------------------------
1 | interface Math {
2 | clamp(value: number, min: number, max: number): number;
3 | degToRad(degrees: number): number;
4 | radToDeg(radians: number): number;
5 | }
6 |
7 | (Math as any).clamp = (value: number, min: number, max: number): number => {
8 | if (value < min) {
9 | return min;
10 | }
11 | if (value > max) {
12 | return max;
13 | }
14 | return value;
15 | }
16 |
17 | (Math as any).degToRad = (degrees: number): number => {
18 | return degrees * Math.PI / 180.0;
19 | }
20 |
21 | (Math as any).radToDeg = (radians: number): number => {
22 | return radians * 180.0 / Math.PI;
23 | }
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/core/message/IMessageHandler.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IMessageHandler {
5 |
6 | onMessage(message: Message): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/core/message/messageSubscriptionNode.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class MessageSubscriptionNode {
5 |
6 | public message: Message;
7 |
8 | public handler: IMessageHandler;
9 |
10 |
11 | public constructor(message: Message, handler: IMessageHandler) {
12 | this.message = message;
13 | this.handler = handler;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 25/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // 应用程序的主要入口点。
5 | window.onload = function () {
6 | engine = new TSE.Engine(320, 480);
7 | engine.start();
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/assets/fonts/text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 26/TS GameEngine/assets/fonts/text.png
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/assets/sounds/dead.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 26/TS GameEngine/assets/sounds/dead.mp3
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/assets/sounds/flap.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 26/TS GameEngine/assets/sounds/flap.mp3
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/assets/sounds/ting.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 26/TS GameEngine/assets/sounds/ting.mp3
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/assets/textures/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 26/TS GameEngine/assets/textures/bg.png
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/assets/textures/duck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 26/TS GameEngine/assets/textures/duck.png
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/assets/textures/end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 26/TS GameEngine/assets/textures/end.png
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/assets/textures/grass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 26/TS GameEngine/assets/textures/grass.png
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/assets/textures/middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 26/TS GameEngine/assets/textures/middle.png
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/assets/textures/playbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 26/TS GameEngine/assets/textures/playbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/assets/textures/restartbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 26/TS GameEngine/assets/textures/restartbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/assets/textures/score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 26/TS GameEngine/assets/textures/score.png
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/assets/textures/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 26/TS GameEngine/assets/textures/title.png
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/assets/textures/tutorial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 26/TS GameEngine/assets/textures/tutorial.png
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/core/assets/IAsset.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset */
4 | export interface IAsset {
5 |
6 | /** The name of this asset. */
7 | readonly name: string;
8 |
9 | /** The data of this asset. */
10 | readonly data: any;
11 | }
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/core/assets/IAssetLoader.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset loader. */
4 | export interface IAssetLoader {
5 |
6 | /** The extensions supported by this asset loader. */
7 | readonly supportedExtensions: string[];
8 |
9 | /**
10 | * Loads an asset with the given name.
11 | * @param assetName The name of the asset to be loaded.
12 | */
13 | loadAsset(assetName: string): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/core/behaviors/IBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehavior {
5 | name: string;
6 |
7 | setOwner( owner: SimObject ): void;
8 |
9 | updateReady(): void;
10 |
11 | update( time: number ): void;
12 |
13 | apply( userData: any ): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/core/behaviors/IBehaviorBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehaviorBuilder {
5 | readonly type: string;
6 | buildFromJson(json: any): IBehavior;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/core/behaviors/IBehaviorData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IBehaviorData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/core/behaviors/baseBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseBehavior implements IBehavior {
5 | public name: string;
6 |
7 | protected _data: IBehaviorData;
8 | protected _owner: SimObject;
9 |
10 | public constructor(data: IBehaviorData) {
11 | this._data = data;
12 | this.name = this._data.name;
13 | }
14 |
15 | public setOwner(owner: SimObject): void {
16 | this._owner = owner;
17 | }
18 |
19 | public updateReady(): void {
20 | }
21 |
22 | public update(time: number): void {
23 | }
24 |
25 | public apply(userData: any): void {
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/core/behaviors/behaviorManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class BehaviorManager {
5 | private static _registeredBuilders: { [type: string]: IBehaviorBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IBehaviorBuilder): void {
9 | BehaviorManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractBehavior(json: any): IBehavior {
13 | if (json.type !== undefined) {
14 | if (BehaviorManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return BehaviorManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Behavior manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/core/components/ComponentManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export class ComponentManager {
4 |
5 | private static _registeredBuilders: { [type: string]: IComponentBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IComponentBuilder): void {
9 | ComponentManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractComponent(json: any): IComponent {
13 | if (json.type !== undefined) {
14 | if (ComponentManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return ComponentManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Component manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/core/components/IComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponent {
4 |
5 | name: string;
6 |
7 | readonly owner: SimObject;
8 | setOwner(owner: SimObject): void;
9 |
10 | load(): void;
11 |
12 | updateReady(): void;
13 |
14 | update(time: number): void;
15 |
16 | render(shader: Shader): void;
17 | }
18 | }
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/core/components/IComponentBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentBuilder {
4 |
5 | readonly type: string;
6 |
7 | buildFromJson(json: any): IComponent;
8 | }
9 | }
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/core/components/IComponentData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/core/components/baseComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseComponent implements IComponent {
5 |
6 | protected _owner: SimObject;
7 | protected _data: IComponentData;
8 |
9 | public name: string;
10 |
11 |
12 | public constructor(data: IComponentData) {
13 | this._data = data;
14 | this.name = data.name;
15 | }
16 |
17 | public get owner(): SimObject {
18 | return this._owner;
19 | }
20 |
21 | public setOwner(owner: SimObject): void {
22 | this._owner = owner;
23 | }
24 |
25 | public load(): void {
26 | }
27 |
28 | public updateReady(): void {
29 | }
30 |
31 | public update(time: number): void {
32 | }
33 |
34 | public render(shader: Shader): void {
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/core/graphics/shapes2D/IShape2D.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IShape2D {
4 |
5 | position: Vector2;
6 |
7 | origin: Vector2;
8 |
9 | readonly offset: Vector2;
10 |
11 | setFromJson(json: any): void;
12 |
13 | intersects(other: IShape2D): boolean;
14 |
15 | pointInShape(point: Vector2): boolean;
16 | }
17 | }
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/core/math/mathExtensions.ts:
--------------------------------------------------------------------------------
1 | interface Math {
2 | clamp(value: number, min: number, max: number): number;
3 | degToRad(degrees: number): number;
4 | radToDeg(radians: number): number;
5 | }
6 |
7 | (Math as any).clamp = (value: number, min: number, max: number): number => {
8 | if (value < min) {
9 | return min;
10 | }
11 | if (value > max) {
12 | return max;
13 | }
14 | return value;
15 | }
16 |
17 | (Math as any).degToRad = (degrees: number): number => {
18 | return degrees * Math.PI / 180.0;
19 | }
20 |
21 | (Math as any).radToDeg = (radians: number): number => {
22 | return radians * 180.0 / Math.PI;
23 | }
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/core/message/IMessageHandler.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IMessageHandler {
5 |
6 | onMessage(message: Message): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/core/message/messageSubscriptionNode.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class MessageSubscriptionNode {
5 |
6 | public message: Message;
7 |
8 | public handler: IMessageHandler;
9 |
10 |
11 | public constructor(message: Message, handler: IMessageHandler) {
12 | this.message = message;
13 | this.handler = handler;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TS GameEngine 26/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/app.ts:
--------------------------------------------------------------------------------
1 |
2 | var engine:TSE.Engine;
3 |
4 | // The main entry point to the application.
5 | window.onload = function () {
6 | engine = new TSE.Engine(320, 480);
7 | engine.start("viewport");
8 | }
9 |
10 | window.onresize = function () {
11 | engine.resize();
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/assets/fonts/text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 27/TS GameEngine/assets/fonts/text.png
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/assets/sounds/dead.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 27/TS GameEngine/assets/sounds/dead.mp3
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/assets/sounds/flap.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 27/TS GameEngine/assets/sounds/flap.mp3
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/assets/sounds/ting.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 27/TS GameEngine/assets/sounds/ting.mp3
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/assets/textures/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 27/TS GameEngine/assets/textures/bg.png
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/assets/textures/duck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 27/TS GameEngine/assets/textures/duck.png
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/assets/textures/end.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 27/TS GameEngine/assets/textures/end.png
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/assets/textures/grass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 27/TS GameEngine/assets/textures/grass.png
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/assets/textures/middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 27/TS GameEngine/assets/textures/middle.png
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/assets/textures/playbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 27/TS GameEngine/assets/textures/playbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/assets/textures/restartbtn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 27/TS GameEngine/assets/textures/restartbtn.png
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/assets/textures/score.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 27/TS GameEngine/assets/textures/score.png
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/assets/textures/title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 27/TS GameEngine/assets/textures/title.png
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/assets/textures/tutorial.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SunGuangdong/TypeScript-GameEngine/3ef1fe57eda046c4dd0b2fca992d40674b58e78f/TS GameEngine 27/TS GameEngine/assets/textures/tutorial.png
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/core/assets/IAsset.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset */
4 | export interface IAsset {
5 |
6 | /** The name of this asset. */
7 | readonly name: string;
8 |
9 | /** The data of this asset. */
10 | readonly data: any;
11 | }
12 | }
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/core/assets/IAssetLoader.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | /** Represents an asset loader. */
4 | export interface IAssetLoader {
5 |
6 | /** The extensions supported by this asset loader. */
7 | readonly supportedExtensions: string[];
8 |
9 | /**
10 | * Loads an asset with the given name.
11 | * @param assetName The name of the asset to be loaded.
12 | */
13 | loadAsset(assetName: string): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/core/behaviors/IBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehavior {
5 | name: string;
6 |
7 | setOwner( owner: SimObject ): void;
8 |
9 | updateReady(): void;
10 |
11 | update( time: number ): void;
12 |
13 | apply( userData: any ): void;
14 | }
15 | }
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/core/behaviors/IBehaviorBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IBehaviorBuilder {
5 | readonly type: string;
6 | buildFromJson(json: any): IBehavior;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/core/behaviors/IBehaviorData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IBehaviorData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/core/behaviors/baseBehavior.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseBehavior implements IBehavior {
5 | public name: string;
6 |
7 | protected _data: IBehaviorData;
8 | protected _owner: SimObject;
9 |
10 | public constructor(data: IBehaviorData) {
11 | this._data = data;
12 | this.name = this._data.name;
13 | }
14 |
15 | public setOwner(owner: SimObject): void {
16 | this._owner = owner;
17 | }
18 |
19 | public updateReady(): void {
20 | }
21 |
22 | public update(time: number): void {
23 | }
24 |
25 | public apply(userData: any): void {
26 | }
27 | }
28 | }
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/core/behaviors/behaviorManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class BehaviorManager {
5 | private static _registeredBuilders: { [type: string]: IBehaviorBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IBehaviorBuilder): void {
9 | BehaviorManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractBehavior(json: any): IBehavior {
13 | if (json.type !== undefined) {
14 | if (BehaviorManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return BehaviorManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Behavior manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/core/components/ComponentManager.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export class ComponentManager {
4 |
5 | private static _registeredBuilders: { [type: string]: IComponentBuilder } = {};
6 |
7 |
8 | public static registerBuilder(builder: IComponentBuilder): void {
9 | ComponentManager._registeredBuilders[builder.type] = builder;
10 | }
11 |
12 | public static extractComponent(json: any): IComponent {
13 | if (json.type !== undefined) {
14 | if (ComponentManager._registeredBuilders[String(json.type)] !== undefined) {
15 | return ComponentManager._registeredBuilders[String(json.type)].buildFromJson(json);
16 | }
17 |
18 | throw new Error("Component manager error - type is missing or builder is not registered for this type.");
19 | }
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/core/components/IComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponent {
4 |
5 | name: string;
6 |
7 | readonly owner: SimObject;
8 | setOwner(owner: SimObject): void;
9 |
10 | load(): void;
11 |
12 | updateReady(): void;
13 |
14 | update(time: number): void;
15 |
16 | render(shader: Shader): void;
17 | }
18 | }
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/core/components/IComponentBuilder.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentBuilder {
4 |
5 | readonly type: string;
6 |
7 | buildFromJson(json: any): IComponent;
8 | }
9 | }
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/core/components/IComponentData.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IComponentData {
4 | name: string;
5 |
6 | setFromJson(json: any): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/core/components/baseComponent.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export abstract class BaseComponent implements IComponent {
5 |
6 | protected _owner: SimObject;
7 | protected _data: IComponentData;
8 |
9 | public name: string;
10 |
11 |
12 | public constructor(data: IComponentData) {
13 | this._data = data;
14 | this.name = data.name;
15 | }
16 |
17 | public get owner(): SimObject {
18 | return this._owner;
19 | }
20 |
21 | public setOwner(owner: SimObject): void {
22 | this._owner = owner;
23 | }
24 |
25 | public load(): void {
26 | }
27 |
28 | public updateReady(): void {
29 | }
30 |
31 | public update(time: number): void {
32 | }
33 |
34 | public render(shader: Shader): void {
35 | }
36 | }
37 | }
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/core/graphics/shapes2D/IShape2D.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 | export interface IShape2D {
4 |
5 | position: Vector2;
6 |
7 | origin: Vector2;
8 |
9 | readonly offset: Vector2;
10 |
11 | setFromJson(json: any): void;
12 |
13 | intersects(other: IShape2D): boolean;
14 |
15 | pointInShape(point: Vector2): boolean;
16 | }
17 | }
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/core/math/mathExtensions.ts:
--------------------------------------------------------------------------------
1 | interface Math {
2 | clamp(value: number, min: number, max: number): number;
3 | degToRad(degrees: number): number;
4 | radToDeg(radians: number): number;
5 | }
6 |
7 | (Math as any).clamp = (value: number, min: number, max: number): number => {
8 | if (value < min) {
9 | return min;
10 | }
11 | if (value > max) {
12 | return max;
13 | }
14 | return value;
15 | }
16 |
17 | (Math as any).degToRad = (degrees: number): number => {
18 | return degrees * Math.PI / 180.0;
19 | }
20 |
21 | (Math as any).radToDeg = (radians: number): number => {
22 | return radians * 180.0 / Math.PI;
23 | }
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/core/message/IMessageHandler.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export interface IMessageHandler {
5 |
6 | onMessage(message: Message): void;
7 | }
8 | }
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/core/message/messageSubscriptionNode.ts:
--------------------------------------------------------------------------------
1 | namespace TSE {
2 |
3 |
4 | export class MessageSubscriptionNode {
5 |
6 | public message: Message;
7 |
8 | public handler: IMessageHandler;
9 |
10 |
11 | public constructor(message: Message, handler: IMessageHandler) {
12 | this.message = message;
13 | this.handler = handler;
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TypeScript Tutorial
6 |
7 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/TS GameEngine 27/TS GameEngine/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------