本文整理汇总了Golang中github.com/paked/engi/ecs.World.AddEntity方法的典型用法代码示例。如果您正苦于以下问题:Golang World.AddEntity方法的具体用法?Golang World.AddEntity怎么用?Golang World.AddEntity使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/paked/engi/ecs.World
的用法示例。
在下文中一共展示了World.AddEntity方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Setup
func (game *Game) Setup(w *ecs.World) {
engi.SetBg(0x2d3739)
// Add all of the systems
w.AddSystem(&engi.RenderSystem{})
w.AddSystem(&engi.CollisionSystem{})
w.AddSystem(&DeathSystem{})
w.AddSystem(&FallingSystem{})
w.AddSystem(&ControlSystem{})
w.AddSystem(&RockSpawnSystem{})
// Create new entity subscribed to all the systems!
guy := ecs.NewEntity([]string{"RenderSystem", "ControlSystem", "RockSpawnSystem", "CollisionSystem", "DeathSystem"})
texture := engi.Files.Image("icon.png")
render := engi.NewRenderComponent(texture, engi.Point{4, 4}, "guy")
// Tell the collision system that this player is solid
collision := &engi.CollisionComponent{Solid: true, Main: true}
width := texture.Width() * render.Scale().X
height := texture.Height() * render.Scale().Y
space := &engi.SpaceComponent{engi.Point{(engi.Width() - width) / 2, (engi.Height() - height) / 2}, width, height}
guy.AddComponent(render)
guy.AddComponent(space)
guy.AddComponent(collision)
w.AddEntity(guy)
}
示例2: Setup
// Setup is called before the main loop is started
func (game *Game) Setup(w *ecs.World) {
engi.SetBg(0x222222)
w.AddSystem(&engi.RenderSystem{})
w.AddSystem(engi.NewMouseZoomer(zoomSpeed))
// Create the background; this way we'll see when we actually zoom
w.AddEntity(generateBackground())
}
示例3: Setup
// Setup is called before the main loop is started
func (game *Game) Setup(w *ecs.World) {
engi.SetBg(0x222222)
w.AddSystem(&engi.RenderSystem{})
// The most important line in this whole demo:
w.AddSystem(engi.NewEdgeScroller(scrollSpeed, edgeMargin))
// Create the background; this way we'll see when we actually scroll
w.AddEntity(generateBackground())
}
示例4: Setup
func (game *GameWorld) Setup(w *ecs.World) {
engi.SetBg(0xFFFFFF)
w.AddSystem(&engi.MouseSystem{})
w.AddSystem(&engi.RenderSystem{})
w.AddSystem(&ControlSystem{})
w.AddSystem(engi.NewMouseZoomer(-0.125))
w.AddEntity(game.CreateEntity())
}
示例5: Setup
func (game *Game) Setup(w *ecs.World) {
engi.SetBg(0xFFFFFF)
w.AddSystem(&engi.RenderSystem{})
w.AddSystem(&engi.AudioSystem{})
backgroundMusic := ecs.NewEntity([]string{"AudioSystem"})
backgroundMusic.AddComponent(&engi.AudioComponent{File: "326488.wav", Repeat: true, Background: true})
w.AddEntity(backgroundMusic)
}
示例6: Setup
func (game *GameWorld) Setup(w *ecs.World) {
engi.SetBg(0xFFFFFF)
w.AddSystem(&engi.RenderSystem{})
w.AddSystem(&engi.AnimationSystem{})
w.AddSystem(&ControlSystem{})
w.AddSystem(engi.NewMouseZoomer(zoomSpeed))
spriteSheet := engi.NewSpritesheetFromFile("hero.png", 150, 150)
w.AddEntity(game.CreateEntity(&engi.Point{0, 0}, spriteSheet, StopAction))
}
示例7: Setup
// Setup is called before the main loop is started
func (game *Game) Setup(w *ecs.World) {
engi.SetBg(0x222222)
w.AddSystem(&engi.RenderSystem{})
// Adding KeyboardScroller so we can actually see the difference between background and HUD when scrolling
w.AddSystem(engi.NewKeyboardScroller(scrollSpeed, engi.W, engi.D, engi.S, engi.A))
w.AddSystem(engi.NewMouseZoomer(zoomSpeed))
// Create background, so we can see difference between this and HUD
w.AddEntity(generateBackground())
// Creating the HUD
hudWidth := float32(200) // Can be anything you want
hudHeight := engi.WindowHeight() // Can be anything you want
// Generate something that uses the PriorityLevel HUDGround or up
hudBg := generateHUDBackground(hudWidth, hudHeight)
w.AddEntity(hudBg)
}
示例8: Setup
func (game *GameWorld) Setup(w *ecs.World) {
engi.SetBg(0x2d3739)
w.AddSystem(&engi.RenderSystem{})
w.AddSystem(&HideSystem{})
guy := ecs.NewEntity([]string{"RenderSystem", "HideSystem"})
texture := engi.Files.Image("rock.png")
render := engi.NewRenderComponent(texture, engi.Point{8, 8}, "guy")
collision := &engi.CollisionComponent{Solid: true, Main: true}
width := texture.Width() * render.Scale().X
height := texture.Height() * render.Scale().Y
space := &engi.SpaceComponent{engi.Point{(engi.Width() - width) / 2, (engi.Height() - height) / 2}, width, height}
guy.AddComponent(render)
guy.AddComponent(space)
guy.AddComponent(collision)
w.AddEntity(guy)
}
示例9: Setup
func (game *GameWorld) Setup(w *ecs.World) {
engi.SetBg(0x2d3739)
w.AddSystem(&engi.RenderSystem{})
// Create an entity part of the Render and Scale systems
guy := ecs.NewEntity([]string{"RenderSystem", "ScaleSystem"})
// Retrieve a texture
texture := engi.Files.Image("icon.png")
// Create RenderComponent... Set scale to 8x, give lable "guy"
render := engi.NewRenderComponent(texture, engi.Point{8, 8}, "guy")
width := texture.Width() * render.Scale().X
height := texture.Height() * render.Scale().Y
space := &engi.SpaceComponent{engi.Point{0, 0}, width, height}
guy.AddComponent(render)
guy.AddComponent(space)
w.AddEntity(guy)
}
示例10: Setup
func (game *RockScene) Setup(w *ecs.World) {
engi.SetBg(0x2d3739)
w.AddSystem(&engi.RenderSystem{})
w.AddSystem(&ScaleSystem{})
w.AddSystem(&SceneSwitcherSystem{NextScene: "IconScene", WaitTime: time.Second * 3})
guy := ecs.NewEntity([]string{"RenderSystem", "ScaleSystem"})
texture := engi.Files.Image("rock.png")
render := engi.NewRenderComponent(texture, engi.Point{8, 8}, "rock")
collision := &engi.CollisionComponent{Solid: true, Main: true}
width := texture.Width() * render.Scale().X
height := texture.Height() * render.Scale().Y
space := &engi.SpaceComponent{engi.Point{(engi.Width() - width) / 2, (engi.Height() - height) / 2}, width, height}
guy.AddComponent(render)
guy.AddComponent(space)
guy.AddComponent(collision)
w.AddEntity(guy)
}
示例11: Setup
func (pong *PongGame) Setup(w *ecs.World) {
engi.SetBg(0x2d3739)
w.AddSystem(&engi.RenderSystem{})
w.AddSystem(&engi.CollisionSystem{})
w.AddSystem(&SpeedSystem{})
w.AddSystem(&ControlSystem{})
w.AddSystem(&BallSystem{})
w.AddSystem(&ScoreSystem{})
basicFont = (&engi.Font{URL: "Roboto-Regular.ttf", Size: 32, FG: color.NRGBA{255, 255, 255, 255}})
if err := basicFont.CreatePreloaded(); err != nil {
log.Fatalln("Could not load font:", err)
}
ball := ecs.NewEntity([]string{"RenderSystem", "CollisionSystem", "SpeedSystem", "BallSystem"})
ballTexture := engi.Files.Image("ball.png")
ballRender := engi.NewRenderComponent(ballTexture, engi.Point{2, 2}, "ball")
ballSpace := &engi.SpaceComponent{engi.Point{(engi.Width() - ballTexture.Width()) / 2, (engi.Height() - ballTexture.Height()) / 2}, ballTexture.Width() * ballRender.Scale().X, ballTexture.Height() * ballRender.Scale().Y}
ballCollision := &engi.CollisionComponent{Main: true, Solid: true}
ballSpeed := &SpeedComponent{}
ballSpeed.Point = engi.Point{300, 100}
ball.AddComponent(ballRender)
ball.AddComponent(ballSpace)
ball.AddComponent(ballCollision)
ball.AddComponent(ballSpeed)
w.AddEntity(ball)
score := ecs.NewEntity([]string{"RenderSystem", "ScoreSystem"})
scoreRender := engi.NewRenderComponent(basicFont.Render(" "), engi.Point{1, 1}, "YOLO <3")
scoreSpace := &engi.SpaceComponent{engi.Point{100, 100}, 100, 100}
score.AddComponent(scoreRender)
score.AddComponent(scoreSpace)
w.AddEntity(score)
schemes := []string{"WASD", ""}
for i := 0; i < 2; i++ {
paddle := ecs.NewEntity([]string{"RenderSystem", "CollisionSystem", "ControlSystem"})
paddleTexture := engi.Files.Image("paddle.png")
paddleRender := engi.NewRenderComponent(paddleTexture, engi.Point{2, 2}, "paddle")
x := float32(0)
if i != 0 {
x = 800 - 16
}
paddleSpace := &engi.SpaceComponent{engi.Point{x, (engi.Height() - paddleTexture.Height()) / 2}, paddleRender.Scale().X * paddleTexture.Width(), paddleRender.Scale().Y * paddleTexture.Height()}
paddleControl := &ControlComponent{schemes[i]}
paddleCollision := &engi.CollisionComponent{Main: false, Solid: true}
paddle.AddComponent(paddleRender)
paddle.AddComponent(paddleSpace)
paddle.AddComponent(paddleControl)
paddle.AddComponent(paddleCollision)
w.AddEntity(paddle)
}
}