moved to keyField mechanic

master
Pixdigit 6 years ago
parent 12113116e2
commit ea254cce4e

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 MiB

After

Width:  |  Height:  |  Size: 7.9 MiB

@ -77,5 +77,12 @@ func (k *keyField) keyListener(scancode sdl.Scancode) {
if len(k.enteredChar) > 0 {
k.enteredChar = k.enteredChar[:len(k.enteredChar) - 1]
}
} else if scancode == sdl.SCANCODE_RETURN {
if strings.Join(k.enteredChar, "") == k.passwd {
k.onSuccess()
} else {
k.onFailure()
}
}
}

@ -12,10 +12,9 @@ func level1(renderer *sdl.Renderer) {
renderer.SetDrawColor(158, 158, 255, 255)
button1 := createDefaultButton(renderer)
key1 := createKeyField("abcdef", func(){}, func(){})
key1 := createKeyField("a", func(){levelState++; running = false}, func(){})
button1.posx = 1920 / 2
button1.posy = 1080 / 2
renderer.Present()
button1.stateInner = 2
button1.stateOuter = 2
button1.Blit(renderer)

@ -2,12 +2,11 @@ package main
import (
"github.com/veandco/go-sdl2/sdl"
"strings"
)
func level2(renderer *sdl.Renderer) {
running = true
RegisterKeypressHandler(keyListener2)
RegisterKeypressHandler(escapeListener)
defer ResetHandlers()
renderer.SetDrawColor(158, 158, 255, 255)
@ -21,26 +20,17 @@ func level2(renderer *sdl.Renderer) {
button1.stateOuter = 1
button2.stateInner = 2
button2.stateOuter = 2
key1 := createKeyField("a", func(){levelState++; running = false}, func(){})
for running {
UpdateEvents()
renderer.Clear()
button1.Blit(renderer)
button2.Blit(renderer)
key1.Blit(renderer)
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Present()
renderer.Clear()
sdl.Delay(15)
}
}
func keyListener2(scancode sdl.Scancode) {
key := strings.ToLower(sdl.GetKeyName(sdl.GetKeyFromScancode(scancode)))
if key == "a" {
running = false
levelState = 3
}
if scancode == sdl.SCANCODE_ESCAPE {
running = false
gameState = 1
}
}

@ -2,12 +2,11 @@ package main
import (
"github.com/veandco/go-sdl2/sdl"
"strings"
)
func level3(renderer *sdl.Renderer) {
running = true
RegisterKeypressHandler(keyListener3)
RegisterKeypressHandler(escapeListener)
defer ResetHandlers()
renderer.SetDrawColor(158, 158, 255, 255)
@ -26,27 +25,19 @@ func level3(renderer *sdl.Renderer) {
button2.stateOuter = 1
button3.stateInner = 2
button3.stateOuter = 2
key1 := createKeyField("a", func(){levelState++; running = false}, func(){})
for running {
UpdateEvents()
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
button1.Blit(renderer)
button2.Blit(renderer)
button3.Blit(renderer)
key1.Blit(renderer)
renderer.Present()
sdl.Delay(15)
}
}
func keyListener3(scancode sdl.Scancode) {
key := strings.ToLower(sdl.GetKeyName(sdl.GetKeyFromScancode(scancode)))
if key == "a" {
running = false
levelState = 4
}
if scancode == sdl.SCANCODE_ESCAPE {
running = false
gameState = 1
}
}

@ -2,12 +2,11 @@ package main
import (
"github.com/veandco/go-sdl2/sdl"
"strings"
)
func level4(renderer *sdl.Renderer) {
running = true
RegisterKeypressHandler(keyListener4)
RegisterKeypressHandler(escapeListener)
defer ResetHandlers()
renderer.SetDrawColor(158, 158, 255, 255)
@ -26,27 +25,19 @@ func level4(renderer *sdl.Renderer) {
button2.stateOuter = 2
button3.stateInner = 1
button3.stateOuter = 1
key1 := createKeyField("b", func(){levelState++; running = false}, func(){})
for running {
UpdateEvents()
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
button1.Blit(renderer)
button2.Blit(renderer)
button3.Blit(renderer)
key1.Blit(renderer)
renderer.Present()
sdl.Delay(15)
}
}
func keyListener4(scancode sdl.Scancode) {
key := strings.ToLower(sdl.GetKeyName(sdl.GetKeyFromScancode(scancode)))
if key == "b" {
running = false
levelState = 5
}
if scancode == sdl.SCANCODE_ESCAPE {
running = false
gameState = 1
}
}

@ -2,12 +2,11 @@ package main
import (
"github.com/veandco/go-sdl2/sdl"
"strings"
)
func level5(renderer *sdl.Renderer) {
running = true
RegisterKeypressHandler(keyListener5)
RegisterKeypressHandler(escapeListener)
defer ResetHandlers()
renderer.SetDrawColor(158, 158, 255, 255)
@ -26,27 +25,19 @@ func level5(renderer *sdl.Renderer) {
button2.stateOuter = 2
button3.stateInner = 2
button3.stateOuter = 2
key1 := createKeyField("c", func(){levelState++; running = false}, func(){})
for running {
UpdateEvents()
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
button1.Blit(renderer)
button2.Blit(renderer)
button3.Blit(renderer)
key1.Blit(renderer)
renderer.Present()
sdl.Delay(15)
}
}
func keyListener5(scancode sdl.Scancode) {
key := strings.ToLower(sdl.GetKeyName(sdl.GetKeyFromScancode(scancode)))
if key == "c" {
running = false
levelState = 6
}
if scancode == sdl.SCANCODE_ESCAPE {
running = false
gameState = 1
}
}

@ -2,12 +2,11 @@ package main
import (
"github.com/veandco/go-sdl2/sdl"
"strings"
)
func level6(renderer *sdl.Renderer) {
running = true
RegisterKeypressHandler(keyListener6)
RegisterKeypressHandler(escapeListener)
defer ResetHandlers()
renderer.SetDrawColor(158, 158, 255, 255)
@ -26,27 +25,18 @@ func level6(renderer *sdl.Renderer) {
button2.stateOuter = 1
button3.stateInner = 2
button3.stateOuter = 2
key1 := createKeyField("e", func(){levelState++; running = false}, func(){})
for running {
UpdateEvents()
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
button1.Blit(renderer)
button2.Blit(renderer)
button3.Blit(renderer)
key1.Blit(renderer)
renderer.Present()
sdl.Delay(15)
}
}
func keyListener6(scancode sdl.Scancode) {
key := strings.ToLower(sdl.GetKeyName(sdl.GetKeyFromScancode(scancode)))
if key == "e" {
running = false
levelState = 7
}
if scancode == sdl.SCANCODE_ESCAPE {
running = false
gameState = 1
}
}

@ -11,8 +11,6 @@ var mnbtn2 button
func ShowMainMenu(renderer *sdl.Renderer) {
running = true
//RegisterClickHandler(func(btn uint8, state uint32, x int32, y int32) {fmt.Printf("Button:%d\tstate:%d\tx:%d\ty:%d\n", btn, state, x, y)})
RegisterClickHandler(detectStart)
RegisterKeypressHandler(func(scancode sdl.Scancode){if scancode == sdl.SCANCODE_ESCAPE {running = false; gameState=0}})
defer ResetHandlers()
@ -23,34 +21,21 @@ func ShowMainMenu(renderer *sdl.Renderer) {
_, _, width, height, _ := image.Query()
rect := &sdl.Rect{0, 0, width, height}
renderer.Copy(image, nil, rect)
mnbtn1 = createDefaultButton(renderer)
mnbtn2 = createDefaultButton(renderer)
mnbtn1.posx = 704
mnbtn1.posy = 700
mnbtn2.posx = 1191
mnbtn2.posy = 700
mnbtn1.Blit(renderer)
mnbtn2.Blit(renderer)
renderer.Present()
kfStart := createKeyField("start", func(){gameState = 2; running = false}, showHint)
kfReset := createKeyField("reset", func(){levelState = 0}, func(){})
for running {
renderer.Copy(image, nil, rect)
kfStart.Blit(renderer)
kfReset.Blit(renderer)
renderer.Present()
renderer.Clear()
UpdateEvents()
sdl.Delay(15)
}
}
func detectStart(btn uint8, state uint32, x, y int32) {
if btn == sdl.BUTTON_LEFT && state == sdl.MOUSEBUTTONDOWN {
if mnbtn1.isCLicked(x, y) {
running = false
gameState = 2
}
if mnbtn2.isCLicked(x, y) {
running = false
levelState = 1
gameState = 2
}
}
func showHint() {
}

@ -2,6 +2,7 @@ package main
import(
"math"
"github.com/veandco/go-sdl2/sdl"
)
var running bool
@ -37,3 +38,10 @@ func shiftLeft(array []string, elem string) []string {
dstArray = append(dstArray, elem)
return dstArray
}
func escapeListener(scancode sdl.Scancode) {
if scancode == sdl.SCANCODE_ESCAPE {
running = false
gameState = 1
}
}

Loading…
Cancel
Save