本文整理汇总了Golang中github.com/JoelOtter/termloop.Screen.Level方法的典型用法代码示例。如果您正苦于以下问题:Golang Screen.Level方法的具体用法?Golang Screen.Level怎么用?Golang Screen.Level使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/JoelOtter/termloop.Screen
的用法示例。
在下文中一共展示了Screen.Level方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Update
// Handles player movement and food spawn rate.
func (player *Player) Update(screen *tl.Screen) {
player.snakeTime += screen.TimeDelta()
if player.snakeTime > snakeRate {
player.snakeTime -= snakeRate
player.prevX, player.prevY = player.Position()
switch player.direction {
case "right":
player.SetPosition(player.prevX+1, player.prevY)
case "left":
player.SetPosition(player.prevX-1, player.prevY)
case "up":
player.SetPosition(player.prevX, player.prevY-1)
case "down":
player.SetPosition(player.prevX, player.prevY+1)
}
player.SnakeMovement()
}
player.spawnTime += screen.TimeDelta()
if player.spawnTime > spawnRate {
player.spawnTime -= spawnRate
screenWidth, screenHeight := screen.Size()
rando := rand.New(rand.NewSource(time.Now().UnixNano()))
spawnX, spawnY := rando.Intn(screenWidth), rando.Intn(screenHeight)
screen.Level().AddEntity(tl.NewRectangle(spawnX, spawnY, 1, 1, tl.ColorGreen))
game.Log("Spawn at (%d,%d)", spawnX, spawnY)
}
//Check box boundaries
playerX, playerY := player.Position()
screenWidth, screenHeight := game.Screen().Size()
//<= is used on the upper-boundaries to prevent the player from disappearing offscreen
//by one square
//(Funnily enough, when player.snake is more than one unit long, just stopping the player at
//the boundaries also causes a game over state because the tail slides into the head)
if playerX < 0 || playerX >= screenWidth {
GameOver()
}
if playerY < 0 || playerY >= screenHeight {
GameOver()
}
}
示例2: Update
//Handles auto events
func (player *Player) Update(screen *tl.Screen) {
//tl.Screen.size() parameters are evidently zero until the game.Start(),
//So this is a crude solution intended to center the player after the game has begun
if firstPass {
screenWidth, screenHeight := screen.Size()
player.SetPosition(screenWidth/2, screenHeight/2)
firstPass = false
}
snakeTime += screen.TimeDelta()
if snakeTime > 0.1 {
snakeTime -= 0.1
player.prevX, player.prevY = player.Position()
switch player.direction {
case "right":
player.SetPosition(player.prevX+1, player.prevY)
//player.SnakeMovement(player.prevX+1, player.prevY)
case "left":
player.SetPosition(player.prevX-1, player.prevY)
//player.SnakeMovement(player.prevX-1, player.prevY)
case "up":
player.SetPosition(player.prevX, player.prevY-1)
//player.SnakeMovement(player.prevX, player.prevY-1)
case "down":
player.SetPosition(player.prevX, player.prevY+1)
//player.SnakeMovement(player.prevX, player.prevY+1)
}
player.SnakeMovement()
}
spawnTime += screen.TimeDelta()
if spawnTime > 1 {
spawnTime -= 1
screenWidth, screenHeight := screen.Size()
rando := rand.New(rand.NewSource(time.Now().UnixNano()))
spawnX, spawnY := rando.Intn(screenWidth), rando.Intn(screenHeight)
screen.Level().AddEntity(tl.NewRectangle(spawnX, spawnY, 1, 1, tl.ColorGreen))
game.Log("Spawn at (%d,%d)", spawnX, spawnY)
}
//Check box boundaries
playerX, playerY := player.Position()
screenWidth, screenHeight := game.Screen().Size()
//<= is used on the upper-boundaries to prevent the player from disappearing offscreen
//by one square
//(Funnily enough, when player.snake is more than one unit long, just stopping the player at
//the boundaries also causes a game over state because the tail slides into the head)
if playerX < 0 || playerX >= screenWidth {
GameOver()
//player.SetPosition(player.prevX, player.prevY)
}
if playerY < 0 || playerY >= screenHeight {
GameOver()
//player.SetPosition(player.prevX, player.prevY)
}
}