コード例 #1
0
ファイル: toolbox.go プロジェクト: gophercoders/toolbox
// RenderGraphic draws the Graphic, g, on the screen at postion (x,y).
// 'width' and 'height' specifiy the width and height of the Graphic, g.
//
// RenderGraphic will panic if:
// 1. The Graphic, g, does not contain a Graphic type.
//
// 2. The toolbox has not been initialised.
//
// 3. Any one of x, y, width or height are negative
func RenderGraphic(g Graphic, x, y, width, height int) {
	if !initialised {
		// this stops execution here, so ne need for an else after the if
		panic(notInitialisedMessage)
	}
	if g == nil {
		panic(nilGraphicMessage)
	}
	if x < 0 || y < 0 || width < 0 || height < 0 {
		panic("One of x, y, width or height is negative.")
	}
	var src, dst sdl.Rect

	src.X = 0
	src.Y = 0
	src.W = int32(width)
	src.H = int32(height)

	dst.X = int32(x)
	dst.Y = int32(y)
	dst.W = int32(width)
	dst.H = int32(height)

	renderer.Copy(g, &src, &dst)
}
コード例 #2
0
ファイル: pong.go プロジェクト: gophercoders/pong
func renderGameOver() {
	var src, dst sdl.Rect

	src.X = 0
	src.Y = 0
	src.W = int32(gameOverW)
	src.H = int32(gameOverH)

	dst.X = int32(gameOverX)
	dst.Y = int32(gameOverY)
	dst.W = int32(gameOverW)
	dst.H = int32(gameOverH)

	renderer.Copy(gameOverGfx, &src, &dst)
}
コード例 #3
0
ファイル: pong.go プロジェクト: gophercoders/pong
func renderComputersScore() {
	var src, dst sdl.Rect

	src.X = 0
	src.Y = 0
	src.W = int32(scoreW)
	src.H = int32(scoreH)

	dst.X = int32(computersScoreX)
	dst.Y = int32(computersScoreY)
	dst.W = int32(scoreW)
	dst.H = int32(scoreH)

	renderer.Copy(scoresGfx[computersScore], &src, &dst)
}
コード例 #4
0
ファイル: CreateMenus.go プロジェクト: ITR13/campusFighterI
func CreateMenus(window *sdl.Window, surface *sdl.Surface, renderer *sdl.Renderer, controlManager *inputManager.ControlManager) inputManager.Update {
	progress := float64(0)
	mutex := sync.Mutex{}
	dx := 4 * surface.W / 8
	startRect := sdl.Rect{surface.W / 4, 4 * surface.H / 7, 0, 2 * surface.H / 7}
	midBackgroundRect := sdl.Rect{surface.W / 4, 4 * surface.H / 7, dx, 2 * surface.H / 7}
	backgroundRect := sdl.Rect{surface.W/4 - 5, 4*surface.H/7 - 5, dx + 10, 2*surface.H/7 + 10}
	var mainMenu *Menu
	go asyncMenuCreator(renderer, &mutex, &progress, &mainMenu, surface.W, surface.H, window, controlManager)
	return func(state int) int {
		if controlManager.Player1.BF || controlManager.Player2.BF {
			controlManager.Running = false
			return -1
		}
		mutex.Lock()
		startRect.W = int32(float64(dx) * progress)
		surface.FillRect(&backgroundRect, 0xffff0000)
		surface.FillRect(&midBackgroundRect, 0xff000000)
		surface.FillRect(&startRect, 0xffff0000)
		window.UpdateSurface()
		if progress == 1 {
			menuInfo := MenuInfo{0, controlManager, renderer, &sdl.Rect{0, 0, surface.W, surface.H}}
			inputManager.UpdateFunctions = append(inputManager.UpdateFunctions, mainMenu.Open(0, &menuInfo))
			return -1
		}
		mutex.Unlock()
		return 0
	}
}
コード例 #5
0
ファイル: pong.go プロジェクト: gophercoders/pong
func renderBall() {

	var src, dst sdl.Rect

	src.X = 0
	src.Y = 0
	src.W = int32(ballW)
	src.H = int32(ballH)

	dst.X = int32(ballX)
	dst.Y = int32(ballY)
	dst.W = int32(ballW)
	dst.H = int32(ballH)

	renderer.Copy(ball, &src, &dst)

}
コード例 #6
0
ファイル: pong.go プロジェクト: gophercoders/pong
func renderComputersBat() {

	var src, dst sdl.Rect

	src.X = 0
	src.Y = 0
	src.W = int32(computersBatW)
	src.H = int32(computersBatH)

	dst.X = int32(computersBatX)
	dst.Y = int32(computersBatY)
	dst.W = int32(computersBatW)
	dst.H = int32(computersBatH)

	renderer.Copy(computersBat, &src, &dst)

}