func TeeAsteroidi() { id := TeeEsine(vec2.Vector{0, 1}, vec2.Vector{1, 0.1}, 0) mid := muodolle.Varaa(id) muodot[mid] = Muoto{ Pisteet: []vec2.Vector{ {0, 0}, {0.3, 2}, {-0.4, 2.6}, {-1.2, 2.3}, {-2.5, 2.7}, {-2.8, 2.1}, {-2, 0.7}, {-2, 0.4}, {-1, 0.3}, {-0.8, 0}, {0, 0}, }, Väri: Väri{1, 1, 1}, Muunnos: vec2.Scale(0.1, 0.1).Mul(vec2.Translation(vec2.Vector{1, -1.5})), } //diskolle.Varaa(mid) pyörimiset[pyörimiselle.Varaa(id)] = 0.5 }
func TeeAlus() { alus.ID = TeeEsine(vec2.Vector{}, vec2.Vector{}, 0) id := muodolle.Varaa(alus.ID) muodot[id] = Muoto{ Pisteet: kolmionPisteet, Väri: Väri{1, 1, 1}, Muunnos: vec2.Translation(vec2.Vector{0, -0.06}), } alus.LiekinID = muodolle.Varaa(alus.ID) }
func Piirrä() { for i, muoto := range muodot { muunnos := vec2.Rotation(kulmat[muodolle.Vanhemmat[i]]).Mul(muoto.Muunnos) muunnos = vec2.Translation(paikat[muodolle.Vanhemmat[i]]).Mul(muunnos) muunnetutPisteet := make([]vec2.Vector, len(muoto.Pisteet)) for j, piste := range muoto.Pisteet { muunnetutPisteet[j] = muunnos.Transform(piste) } asetaVäri(muoto.Väri) for _, siirto := range []vec2.Vector{{0, 0}, {0, 2}, {0, -2}, {2, 0}, {-2, 0}} { piirräPisteetSiirrolla(muunnetutPisteet, siirto) } } }
func TestSpriteDrawer(_ *testing.T) { t := NewTestbed("displays rotating test image") spritedrawer := NewSpriteDrawer(t.window, 1) texcoord := Upload(t.image, spritedrawer.Texture, 0, 0, 0) sprite := Sprite{Image: texcoord} x := 0.0 t.UntilClose(func() { transform := vec2.Translation(vec2.Vector{-float64(t.image.Rect.Max.X) / 2, -float64(t.image.Rect.Max.Y) / 2}) transform = vec2.Rotation(x).Mul(transform) x += 0.01 sprite.Transform = transform.To32() spritedrawer.Draw([]Sprite{sprite}) }) }
"github.com/joonazan/vec2" ) var alus Alus type Alus struct { ID, LiekinID int AikaAseenLaukeamisesta float64 } var kolmionPisteet = []vec2.Vector{{0.1, 0}, {-0.1, 0}, {0, 0.2}, {0.1, 0}} var Liekki = Muoto{ Pisteet: kolmionPisteet, Väri: Väri{1, 0.7, 0.3}, Muunnos: vec2.Translation(vec2.Vector{0, -0.09}).Mul(vec2.Scale(0.4, 0.4).Mul(vec2.Rotation(math.Pi))), } func TeeAlus() { alus.ID = TeeEsine(vec2.Vector{}, vec2.Vector{}, 0) id := muodolle.Varaa(alus.ID) muodot[id] = Muoto{ Pisteet: kolmionPisteet, Väri: Väri{1, 1, 1}, Muunnos: vec2.Translation(vec2.Vector{0, -0.06}), } alus.LiekinID = muodolle.Varaa(alus.ID) }