本文整理汇总了Golang中github.com/JoelOtter/termloop.NewRectangle函数的典型用法代码示例。如果您正苦于以下问题:Golang NewRectangle函数的具体用法?Golang NewRectangle怎么用?Golang NewRectangle使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewRectangle函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: buildLevel
func (g *Game) buildLevel(gameLevel int) {
level := tl.NewBaseLevel(tl.Cell{})
// TODO: Remove this abomination
width := boardWidth*squareWidth + (boardWidth+1)*borderWidth
height := boardHeight*squareHeight + (boardHeight+1)*borderHeight
level.AddEntity(tl.NewRectangle(1, 1, width, height, tl.ColorGreen))
for i := 0; i < boardHeight; i++ {
for j := 0; j < boardWidth; j++ {
x := offsetX + borderWidth + (j * squareWidth) + j*borderWidth
y := offsetY + borderHeight + (i * squareHeight) + i*borderHeight
level.AddEntity(tl.NewRectangle(x, y, squareWidth, squareHeight, tl.ColorBlue))
}
}
g.board.populateBoard(gameLevel, answersPerLevel, level)
level.AddEntity(g.player)
// Add Foes
foes := int(gameLevel/10) + 2
g.foes = g.foes[:0]
var foe *Foe
for i := 0; i < foes; i++ {
foe = NewFoe(g)
g.foes = append(g.foes, foe)
level.AddEntity(foe)
}
g.game.Screen().SetLevel(level)
g.updateStatus()
}
开发者ID:aquilax,项目名称:number_crusher,代码行数:27,代码来源:game.go
示例2: build
func (board *Board) build() {
for i := 0; i <= 12; i++ {
for j := 0; j <= 12; j++ {
board.spots[i][j].outer = termloop.NewRectangle(
i*pw, j*pl, pw, pl, termloop.ColorWhite)
board.spots[i][j].inner = termloop.NewRectangle(
i*pw+1, j*pl+1, pw-2, pl-2, termloop.ColorWhite)
}
}
for i := 1; i <= 4; i++ {
tltext := termloop.NewText(3, i, "", termloop.ColorWhite,
termloop.ColorBlack)
board.texts = append(board.texts, tltext)
}
}
开发者ID:roonyh,项目名称:go_game_jam,代码行数:15,代码来源:main.go
示例3: world
func world() {
game := tl.NewGame()
level := tl.NewBaseLevel(tl.Cell{
Bg: tl.ColorWhite,
Fg: tl.ColorWhite,
Ch: '_',
})
for i := -1000; i < 1000; i = i + 40 {
if i == 0 {
continue
}
for j := -1000; j < 1000; j = j + 40 {
level.AddEntity(tl.NewRectangle(i, j, 20, 10, tl.ColorBlue))
}
}
player := Player{
entity: tl.NewEntity(1, 1, 1, 1),
level: level,
}
player.entity.SetCell(0, 0, &tl.Cell{Fg: tl.ColorBlack, Ch: '옷'})
level.AddEntity(&player)
game.Screen().SetLevel(level)
go func() {
for {
player.Tick(tl.Event{})
time.Sleep(200 * time.Millisecond)
}
}()
game.Start()
}
开发者ID:jackdoe,项目名称:frankenworms,代码行数:31,代码来源:world.go
示例4: ActivateWin
func (l *endLevel) ActivateWin() {
l.Level = tl.NewBaseLevel(tl.Cell{Bg: l.bg, Fg: l.fg})
l.Level.AddEntity(&l.gt.console)
l.win = true
moneyEarned := 1000
l.gt.stats.LevelsCompleted++
l.gt.stats.LevelsAttempted++
l.gt.stats.Dollars += moneyEarned
l.gt.stats.TotalEarned += moneyEarned
l.gt.console.SetText("")
w, h := l.gt.g.Screen().Size()
rect := tl.NewRectangle(10, 2, w-20, h-4, tl.ColorCyan)
l.AddEntity(rect)
l.endMessages = []*tl.Entity{}
l.addEndMessage("data/you_win_a.txt", w/2, 3)
l.addEndMessage("data/you_win_b.txt", w/2, 3)
l.AddEntity(l.endMessages[l.currentMessage])
l.PrintStats(moneyEarned, w/2, 13)
l.Activate()
}
开发者ID:gophergala2016,项目名称:gopher_typer,代码行数:25,代码来源:end_level.go
示例5: main
func main() {
// create game object
game := tl.NewGame()
// create cell
cell := tl.Cell{
Bg: tl.ColorGreen,
Fg: tl.ColorBlack,
Ch: 'v',
}
// create level filled with cell
level := tl.NewBaseLevel(cell)
// create body of water
level.AddEntity(tl.NewRectangle(10, 10, 50, 20, tl.ColorBlue))
// create player
player := Player{
entity: tl.NewEntity(1, 1, 1, 1),
level: level,
}
player.entity.SetCell(0, 0, &tl.Cell{Fg: tl.ColorRed, Ch: '@'})
// add player to level
level.AddEntity(&player)
// set level of screen
game.Screen().SetLevel(level)
// start the game
game.Start()
}
开发者ID:kaibacorp,项目名称:roguelike,代码行数:32,代码来源:dodgeballRL.go
示例6: ActivateFail
func (l *endLevel) ActivateFail() {
l.win = false
l.gt.stats.LevelsAttempted++
l.gt.stats.Lives--
if l.gt.stats.Lives == 0 {
l.ActivateGameOver()
return
}
l.Level = tl.NewBaseLevel(tl.Cell{Bg: l.bg, Fg: l.fg})
l.AddEntity(&l.gt.console)
l.gt.console.SetText("")
w, h := l.gt.g.Screen().Size()
rect := tl.NewRectangle(10, 2, w-20, h-4, tl.ColorCyan)
l.AddEntity(rect)
l.endMessages = []*tl.Entity{}
l.addEndMessage("data/you_loose_a.txt", w/2, 3)
l.addEndMessage("data/you_loose_b.txt", w/2, 3)
l.AddEntity(l.endMessages[l.currentMessage])
l.PrintStats(0, w/2, 13)
l.Activate()
}
开发者ID:gophergala2016,项目名称:gopher_typer,代码行数:25,代码来源:end_level.go
示例7: Draw
func (player *Player) Draw(s *tl.Screen) {
screenWidthidth, screenh := s.Size()
x := player.sprite.x + screenWidthidth/2 - 30
y := player.sprite.y + screenh - 25
bg := tl.NewRectangle(x, y, x+20, y+10, StatsBG)
bg.Draw(s)
health := tl.NewText(x+1, y+1, fmt.Sprintf("%3.f%% health", float32(player.health)/float32(player.maxHealth)*100), tl.ColorRed, StatsBG)
health.Draw(s)
mana := tl.NewText(x+27, y+1, fmt.Sprintf("%3.f%% mana", float32(player.mana)/float32(player.maxMana)*100), tl.ColorBlue, StatsBG)
mana.Draw(s)
gold := tl.NewText(x+1, y+12, fmt.Sprintf("%d gold", player.gold), tl.ColorYellow, StatsBG)
gold.Draw(s)
experience := tl.NewText(x+29, y+12, fmt.Sprintf("%3.f%% xp", float32(player.experience)/float32(player.experienceToLevel)*100), tl.ColorMagenta, StatsBG)
experience.Draw(s)
if player.isCasting {
player.isCasting = false
newSpellEffect := NewSpellEffect(player.sprite, player.spellCanvases[player.sprite.direction], player.sprite.level)
player.sprite.level.AddEntity(newSpellEffect)
}
e := tl.NewEntityFromCanvas(x+12, y+1, *player.portrait)
e.Draw(s)
}
开发者ID:keithblaha,项目名称:go_game_jam,代码行数:29,代码来源:game.go
示例8: main
func main() {
g := tl.NewGame()
l := tl.NewBaseLevel(tl.Cell{
Bg: tl.ColorWhite,
})
l.AddEntity(&CollRec{
r: tl.NewRectangle(3, 3, 3, 3, tl.ColorRed),
move: true,
})
l.AddEntity(&CollRec{
r: tl.NewRectangle(7, 4, 3, 3, tl.ColorGreen),
move: false,
})
g.SetLevel(l)
g.Start()
}
开发者ID:gitter-badger,项目名称:termloop,代码行数:16,代码来源:collision.go
示例9: main
func main() {
rand.Seed(time.Now().UTC().UnixNano())
game := tl.NewGame()
level := tl.NewBaseLevel(tl.Cell{
Bg: tl.ColorWhite,
})
for i := 0; i < 4; i++ {
TilePos[i] = rand.Intn(4)
level.AddEntity(&Tile{
r: tl.NewRectangle(X+TilePos[i]*(TileWidth+BorderWidth), Y-i*(TileHeight+BorderHeight), TileWidth, TileHeight, tl.ColorBlack),
})
}
level.AddEntity(tl.NewText(X+TileWidth/2-1, Y+TileHeight, "←", tl.ColorBlack, tl.ColorWhite))
level.AddEntity(tl.NewText(X+(TileWidth+BorderWidth)+TileWidth/2-1, Y+TileHeight, "↓", tl.ColorBlack, tl.ColorWhite))
level.AddEntity(tl.NewText(X+2*(TileWidth+BorderWidth)+TileWidth/2-1, Y+TileHeight, "↑", tl.ColorBlack, tl.ColorWhite))
level.AddEntity(tl.NewText(X+3*(TileWidth+BorderWidth)+TileWidth/2-1, Y+TileHeight, "→", tl.ColorBlack, tl.ColorWhite))
level.AddEntity(&RemainingTime{
r: tl.NewText(X+4*(TileWidth+BorderWidth), 0, fmt.Sprintf("%.3f", Time), tl.ColorRed, tl.ColorDefault),
s: tl.NewText(0, 0, "0", tl.ColorRed, tl.ColorDefault),
t: Time,
m: tl.NewText(0, Y+TileHeight+1, "", tl.ColorRed, tl.ColorDefault),
e: tl.NewText(X+4*(TileWidth+BorderWidth), Y+TileHeight+1, "", tl.ColorRed, tl.ColorDefault),
})
game.Screen().SetLevel(level)
game.Start()
}
开发者ID:swapagarwal,项目名称:gotapper,代码行数:26,代码来源:main.go
示例10: NewSnobee
// TODO move to snobee.go
func NewSnobee(x, y int, game *tl.Game) *Snobee {
return &Snobee{
r: tl.NewRectangle(x, y, 1, 1, tl.ColorYellow),
x: x,
y: y,
g: game,
}
}
开发者ID:fergstar,项目名称:pen.go,代码行数:9,代码来源:main.go
示例11: main
func main() {
g := tl.NewGame()
g.Screen().SetFps(60)
l := tl.NewBaseLevel(tl.Cell{
Bg: tl.ColorWhite,
})
l.AddEntity(&CollRec{
r: tl.NewRectangle(3, 3, 3, 3, tl.ColorRed),
move: true,
})
l.AddEntity(&CollRec{
r: tl.NewRectangle(7, 4, 3, 3, tl.ColorGreen),
move: false,
})
g.Screen().SetLevel(l)
g.Screen().AddEntity(tl.NewFpsText(0, 0, tl.ColorRed, tl.ColorDefault, 0.5))
g.Start()
}
开发者ID:XQYCHJ,项目名称:termloop,代码行数:18,代码来源:collision.go
示例12: NewPengo
// TODO move to pengo.go
func NewPengo(x, y int, game *tl.Game) *Pengo {
return &Pengo{
r: tl.NewRectangle(x, y, 1, 1, tl.ColorRed),
x: x,
y: y,
g: game,
d: NONE,
}
}
开发者ID:fergstar,项目名称:pen.go,代码行数:10,代码来源:main.go
示例13: refresh
func (l *storeLevel) refresh() {
l.Level = tl.NewBaseLevel(tl.Cell{Bg: l.bg, Fg: l.fg})
l.gt.store.AddEntity(&l.gt.console)
l.gt.console.SetText("")
w, h := l.gt.g.Screen().Size()
rect := tl.NewRectangle(10, 2, w-20, h-4, tl.ColorGreen)
l.AddEntity(rect)
store, _ := ioutil.ReadFile("data/store.txt")
c := tl.CanvasFromString(string(store))
l.AddEntity(tl.NewEntityFromCanvas(w/2-len(c)/2, 4, c))
msg := "Up/Down(j/k), Enter to purchase, N to return to the game"
l.AddEntity(tl.NewText(w/2-len(msg)/2, 10, msg, tl.ColorBlack, tl.ColorDefault))
msg = fmt.Sprintf("Cash: $%d", l.gt.stats.Dollars)
l.AddEntity(tl.NewText(14, 11, msg, tl.ColorBlack, tl.ColorDefault))
y := 12
for idx, i := range l.items {
i.Reset(l.gt)
x := 14
fg := tl.ColorBlack
if i.Price() > l.gt.stats.Dollars {
fg = tl.ColorRed
}
var price string
if l.currentItem == idx {
price = ">" + i.PriceDesc() + "<"
} else {
price = " " + i.PriceDesc()
}
l.AddEntity(tl.NewText(x, y, price, fg, tl.ColorDefault))
x += len(i.PriceDesc()) + 4
l.AddEntity(tl.NewText(x, y, i.Name(), tl.ColorBlue, tl.ColorDefault))
y++
}
desc := l.items[l.currentItem].Desc()
l.AddEntity(tl.NewText(14, y+1, desc, tl.ColorBlue, tl.ColorDefault))
y = 12
x := w - 30
msg = fmt.Sprintf("Goroutines: %d", len(l.gt.items))
l.AddEntity(tl.NewText(x, y, msg, tl.ColorBlue, tl.ColorDefault))
y++
msg = fmt.Sprintf("CPU Upgrades: %d", l.gt.stats.CPUUpgrades)
l.AddEntity(tl.NewText(x, y, msg, tl.ColorBlue, tl.ColorDefault))
y++
msg = fmt.Sprintf("Go Version: %0.1f", l.gt.stats.GoVersion)
l.AddEntity(tl.NewText(x, y, msg, tl.ColorBlue, tl.ColorDefault))
y++
l.gt.g.Screen().SetLevel(l)
}
开发者ID:gophergala2016,项目名称:gopher_typer,代码行数:56,代码来源:store_level.go
示例14: NewBlock
func NewBlock(x, y int, color tl.Attr, g *tl.Game, w, h, score int, scoretext *tl.Text) *Block {
return &Block{
r: tl.NewRectangle(x, y, 1, 1, color),
g: g,
w: w,
h: h,
score: score,
scoretext: scoretext,
}
}
开发者ID:gandilong,项目名称:termloop,代码行数:10,代码来源:pyramid.go
示例15: buildLevel
func buildLevel(g *tl.Game, w, h, score int) {
maze := generateMaze(w, h)
l := tl.NewBaseLevel(tl.Cell{})
g.SetLevel(l)
g.Log("Building level with width %d and height %d", w, h)
scoretext := tl.NewText(0, 1, "Levels explored: "+strconv.Itoa(score),
tl.ColorBlue, tl.ColorBlack)
g.AddEntity(tl.NewText(0, 0, "Pyramid!", tl.ColorBlue, tl.ColorBlack))
g.AddEntity(scoretext)
for i, row := range maze {
for j, path := range row {
if path == '*' {
l.AddEntity(tl.NewRectangle(i, j, 1, 1, tl.ColorWhite))
} else if path == 'S' {
l.AddEntity(NewBlock(i, j, tl.ColorRed, g, w, h, score, scoretext))
} else if path == 'L' {
l.AddEntity(tl.NewRectangle(i, j, 1, 1, tl.ColorBlue))
}
}
}
}
开发者ID:oscillatingworks,项目名称:termloop,代码行数:21,代码来源:pyramid.go
示例16: NewIceBlock
// TODO move to iceblock.go
func NewIceBlock(x, y int, game *tl.Game, color tl.Attr) *Iceblock {
return &Iceblock{
r: tl.NewRectangle(x, y, 1, 1, color),
g: game,
startPos: Point{
x: x,
y: y,
},
endPos: Point{
x: x,
y: y,
},
update: 0.05,
direction: NONE,
}
}
开发者ID:fergstar,项目名称:pen.go,代码行数:17,代码来源:main.go
示例17: 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()
}
}
开发者ID:jodizzle,项目名称:gosnake,代码行数:48,代码来源:player.go
示例18: main
func main() {
game := tl.NewGame()
level := tl.NewBaseLevel(tl.Cell{
Bg: tl.ColorGreen,
Fg: tl.ColorBlack,
Ch: 'v',
})
level.AddEntity(tl.NewRectangle(10, 10, 50, 20, tl.ColorBlue))
player := Player{
entity: tl.NewEntity(1, 1, 1, 1),
level: level,
}
// Set the character at position (0, 0) on the entity.
player.entity.SetCell(0, 0, &tl.Cell{Fg: tl.ColorRed, Ch: '옷'})
level.AddEntity(&player)
game.SetLevel(level)
game.Start()
}
开发者ID:oscillatingworks,项目名称:termloop,代码行数:18,代码来源:tutorial.go
示例19: ActivateGameOver
func (l *endLevel) ActivateGameOver() {
l.Level = tl.NewBaseLevel(tl.Cell{Bg: l.bg, Fg: l.fg})
l.AddEntity(&l.gt.console)
l.gt.console.SetText("")
l.gt.g.SetEndKey(tl.KeyEnter)
w, h := l.gt.g.Screen().Size()
rect := tl.NewRectangle(10, 2, w-20, h-4, tl.ColorCyan)
l.AddEntity(rect)
l.endMessages = []*tl.Entity{}
l.addEndMessage("data/game_over_a.txt", w/2, 3)
l.addEndMessage("data/game_over_b.txt", w/2, 3)
l.AddEntity(l.endMessages[l.currentMessage])
l.PrintStats(0, w/2, 13)
l.Activate()
}
开发者ID:gophergala2016,项目名称:gopher_typer,代码行数:19,代码来源:end_level.go
示例20: Tick
func (text *StartLevel) Tick(event tl.Event) {
if event.Type == tl.EventKey {
if event.Key == tl.KeyEnter {
level := tl.NewBaseLevel(tl.Cell{
Bg: tl.ColorBlack,
Fg: tl.ColorBlack,
})
player := Player{
snake: []*tl.Rectangle{tl.NewRectangle(0, 0, 1, 1, tl.ColorRed)},
level: level,
}
//player.entity.SetCell(0, 0, &tl.Cell{Fg: tl.ColorRed, Ch: '☺'})
level.AddEntity(&player)
game.Screen().SetLevel(level)
}
}
}
开发者ID:jodizzle,项目名称:snake,代码行数:19,代码来源:game.go
注:本文中的github.com/JoelOtter/termloop.NewRectangle函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论