+102
Diff
round #0
+4
coordinates/go.mod
+4
coordinates/go.mod
+4
coordinates/go.sum
+4
coordinates/go.sum
···
1
+
github.com/firefly-zero/firefly-go v0.9.5 h1:BzBr4t76bDVVFwNaWJixs1XasqLNBIdg0k9JXblBfU4=
2
+
github.com/firefly-zero/firefly-go v0.9.5/go.mod h1:+X/XGyPdES51OESkV8NSf1mszEBZionoROM7x2pBofw=
3
+
github.com/orsinium-labs/tinymath v1.0.0 h1:Uzp3GmjWIBxMObx4MQi9ACDu4Q8WKjSRakB1OMo9Bu0=
4
+
github.com/orsinium-labs/tinymath v1.0.0/go.mod h1:WPXX6ei3KSXG7JfA03a+ekCYaY9SWN4I+JRl2p6ck+A=
+94
coordinates/main.go
+94
coordinates/main.go
···
1
+
package main
2
+
3
+
import (
4
+
"github.com/firefly-zero/firefly-go/firefly"
5
+
)
6
+
7
+
var (
8
+
font firefly.Font
9
+
cheatShowCoordinateSystem bool = true
10
+
)
11
+
12
+
const SCREENWIDTH = 240
13
+
const SCREENHEIGHT = 160
14
+
15
+
func init() {
16
+
firefly.Cheat = cheat
17
+
firefly.Boot = boot
18
+
firefly.Render = render
19
+
}
20
+
21
+
func cheat(cmd, val int) int {
22
+
switch cmd {
23
+
case 1:
24
+
cheatShowCoordinateSystem = !cheatShowCoordinateSystem
25
+
return 0
26
+
default:
27
+
return 0
28
+
}
29
+
}
30
+
31
+
func boot() {
32
+
font = firefly.LoadFile("font", nil).Font()
33
+
}
34
+
func render() {
35
+
firefly.ClearScreen(firefly.ColorWhite)
36
+
if cheatShowCoordinateSystem {
37
+
drawCoordinateSystem()
38
+
} else {
39
+
firefly.ClearScreen(firefly.ColorNone)
40
+
}
41
+
}
42
+
43
+
func translatePoint(p firefly.Point) firefly.Point {
44
+
x := p.X + SCREENWIDTH/2
45
+
y := -p.Y + SCREENHEIGHT/2
46
+
// firefly.LogDebug(strings.Join([]string{"x: ", strconv.Itoa(x), ", y: ", strconv.Itoa(y)}, " "))
47
+
return firefly.Point{X: x, Y: y}
48
+
}
49
+
50
+
func drawCoordinateSystem() {
51
+
firefly.DrawLine(translatePoint(firefly.Point{X: 0, Y: -SCREENHEIGHT / 2}), translatePoint(firefly.Point{X: 0, Y: SCREENHEIGHT / 2}), firefly.LineStyle{Color: firefly.ColorLightGray, Width: 1})
52
+
firefly.DrawLine(translatePoint(firefly.Point{X: -SCREENWIDTH / 2, Y: 0}), translatePoint(firefly.Point{X: SCREENWIDTH / 2, Y: 0}), firefly.LineStyle{Color: firefly.ColorLightGray, Width: 1})
53
+
54
+
for i := 0; i < SCREENWIDTH; i += 5 {
55
+
// x ->
56
+
if (SCREENWIDTH+i)%5 == 0 {
57
+
firefly.DrawPoint(translatePoint(firefly.Point{X: i, Y: -1}), firefly.ColorLightGray)
58
+
}
59
+
if (SCREENWIDTH+i)%10 == 0 {
60
+
firefly.DrawPoint(translatePoint(firefly.Point{X: i, Y: -2}), firefly.ColorLightGray)
61
+
}
62
+
// <- x
63
+
if (SCREENWIDTH+i)%5 == 0 {
64
+
firefly.DrawPoint(translatePoint(firefly.Point{X: -i, Y: -1}), firefly.ColorLightGray)
65
+
}
66
+
if (SCREENWIDTH+i)%10 == 0 {
67
+
firefly.DrawPoint(translatePoint(firefly.Point{X: -i, Y: -2}), firefly.ColorLightGray)
68
+
}
69
+
70
+
// y ^
71
+
if (SCREENHEIGHT+i)%5 == 0 {
72
+
firefly.DrawPoint(translatePoint(firefly.Point{X: -1, Y: i}), firefly.ColorLightGray)
73
+
}
74
+
if (SCREENWIDTH+i)%10 == 0 {
75
+
firefly.DrawPoint(translatePoint(firefly.Point{X: -2, Y: i}), firefly.ColorLightGray)
76
+
}
77
+
// y v
78
+
if (SCREENHEIGHT+i)%5 == 0 {
79
+
firefly.DrawPoint(translatePoint(firefly.Point{X: -1, Y: -i}), firefly.ColorLightGray)
80
+
}
81
+
if (SCREENWIDTH+i)%10 == 0 {
82
+
firefly.DrawPoint(translatePoint(firefly.Point{X: -2, Y: -i}), firefly.ColorLightGray)
83
+
}
84
+
}
85
+
86
+
firefly.DrawText(
87
+
"y",
88
+
font, translatePoint(firefly.Point{X: -8, Y: (SCREENHEIGHT / 2) - 8}), firefly.ColorLightGray,
89
+
)
90
+
firefly.DrawText(
91
+
"x",
92
+
font, translatePoint(firefly.Point{X: (SCREENWIDTH/2 - 5), Y: -8}), firefly.ColorLightGray,
93
+
)
94
+
}
History
1 round
0 comments
voigt.tngl.sh
submitted
#0
1 commit
expand
collapse
add coordinate system
expand 0 comments
pull request successfully merged