add comments
This commit is contained in:
		
							
								
								
									
										21
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								main.go
									
									
									
									
									
								
							| @@ -12,13 +12,17 @@ import ( | ||||
| 	"golang.org/x/image/colornames" | ||||
| ) | ||||
|  | ||||
| //open file from the system | ||||
| func loadPicture(path string) (pixel.Picture, error) { | ||||
| 	file, err := os.Open(path) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	//user 'defer' to close the file later on | ||||
| 	defer file.Close() | ||||
|  | ||||
| 	//decode the file to find it's type | ||||
| 	img, _, err := image.Decode(file) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| @@ -26,41 +30,58 @@ func loadPicture(path string) (pixel.Picture, error) { | ||||
| 	return pixel.PictureDataFromImage(img), nil | ||||
| } | ||||
|  | ||||
| //Pixel's main function (because GO forced them to do it this way) | ||||
| func run() { | ||||
| 	//set the Window parameters | ||||
| 	cfg := pixelgl.WindowConfig{ | ||||
| 		Title:  "Pixel Rocks!", | ||||
| 		Bounds: pixel.R(0, 0, 1024, 768), | ||||
| 		VSync:  true, | ||||
| 	} | ||||
|  | ||||
| 	//create a window and pass the parameters | ||||
| 	win, err := pixelgl.NewWindow(cfg) | ||||
| 	if err != nil { | ||||
| 		panic(err) | ||||
| 	} | ||||
|  | ||||
| 	//smooth the edges of the image (antialiasing) | ||||
| 	win.SetSmooth(true) | ||||
|  | ||||
| 	//load a specific image and catch any errors | ||||
| 	pic, err := loadPicture("hiking.png") | ||||
| 	if err != nil { | ||||
| 		panic(err) | ||||
| 	} | ||||
|  | ||||
| 	//create a sprite using the loaded image | ||||
| 	sprite := pixel.NewSprite(pic, pic.Bounds()) | ||||
|  | ||||
| 	//set the angle of the image | ||||
| 	angle := 0.0 | ||||
|  | ||||
| 	//set the time to compare later | ||||
| 	last := time.Now() | ||||
|  | ||||
| 	//loop until window is closed by "X" button | ||||
| 	for !win.Closed() { | ||||
| 		//compare the last time to delta time | ||||
| 		dt := time.Since(last).Seconds() | ||||
| 		last = time.Now() | ||||
|  | ||||
| 		//set the angle according to delta time | ||||
| 		angle += 3 * dt | ||||
|  | ||||
| 		//refresh screen and set background color | ||||
| 		win.Clear(colornames.Firebrick) | ||||
|  | ||||
| 		//set the matrix and location of spirte in window | ||||
| 		mat := pixel.IM | ||||
| 		mat = mat.Rotated(pixel.ZV, angle) | ||||
| 		mat = mat.Moved(win.Bounds().Center()) | ||||
| 		sprite.Draw(win, mat) | ||||
|  | ||||
| 		//update the window | ||||
| 		win.Update() | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user