diff options
-rw-r--r-- | main.go | 34 |
1 files changed, 12 insertions, 22 deletions
@@ -93,9 +93,7 @@ func loop(w *app.Window) error { case system.FrameEvent: gtx := layout.NewContext(&ops, e) level = linescleared/10 + 1 - slevel := fmt.Sprintf("level %d", level) - sscore := fmt.Sprintf("score %d", score) - slines := fmt.Sprintf("lines %d", linescleared) + sdisplay := fmt.Sprintf("level %d\nscore %d\nlines %d\n%s", level, score, linescleared, debug) /* ppos(0, 0, "Hold (c)") npos(3, 0, tris.HoldBox) @@ -109,21 +107,12 @@ func loop(w *app.Window) error { */ inset := layout.UniformInset(unit.Dp(10)) inset.Layout(gtx, func(gtx layout.Context) layout.Dimensions { - return layout.Flex{Axis: layout.Vertical}.Layout(gtx, + return layout.Flex{Axis: layout.Horizontal}.Layout(gtx, layout.Rigid(func(gtx layout.Context) layout.Dimensions { - return material.H5(th, sscore).Layout(gtx) + return material.H6(th, f.Add(p).String()).Layout(gtx) }), layout.Rigid(func(gtx layout.Context) layout.Dimensions { - return material.H5(th, slevel).Layout(gtx) - }), - layout.Rigid(func(gtx layout.Context) layout.Dimensions { - return material.H5(th, slines).Layout(gtx) - }), - layout.Rigid(func(gtx layout.Context) layout.Dimensions { - return material.H5(th, debug).Layout(gtx) - }), - layout.Rigid(func(gtx layout.Context) layout.Dimensions { - return material.H5(th, f.Add(p).String()).Layout(gtx) + return material.H6(th, sdisplay).Layout(gtx) }), ) }) @@ -133,20 +122,21 @@ func loop(w *app.Window) error { case <-lev.C: y = p.Y + 1 lev.Reset(time.Second * 100 / (100 * time.Duration(level))) + default: + if harddrop { + y = p.Y + 1 + } } debug = "move" - if harddrop { - y = p.Y + 1 - } p, floor, topout = p.Move(f, rot, x, y) // Check if the piece can move, then do it and communicate back for housekeeping + if harddrop && floor { + score += 2 * (p.Y - dropfrom) + harddrop = false + } // Give some time before actually locking in to enable tucks // This code runs when the time is over if floor && p.Lock.Add(tris.LockDelay).Before(time.Now()) { - if harddrop { - score += 2 * (p.Y - dropfrom) - harddrop = false - } var l int f = f.Add(p) l, f = f.Lines() // count and remove full lines |