本文整理匯總了Golang中github.com/JoelOtter/termloop.NewRectangle函數的典型用法代碼示例。如果您正苦於以下問題:Golang NewRectangle函數的具體用法?Golang NewRectangle怎麽用?Golang NewRectangle使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了NewRectangle函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的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()
}
示例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)
}
}
示例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()
}
示例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()
}
示例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()
}
示例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()
}
示例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)
}
示例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()
}
示例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()
}
示例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,
}
}
示例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()
}
示例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,
}
}
示例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)
}
示例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,
}
}
示例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))
}
}
}
}