added interludes

master
Pixdigit 5 years ago
parent d57777ab9a
commit 38a93bd46d

@ -28,15 +28,21 @@ func main() {
interludePre1(renderer)
level1(renderer)
case 2:
interludePre2(renderer)
level2(renderer)
case 3:
interludePre3(renderer)
level3(renderer)
case 4:
interludePre4(renderer)
level4(renderer)
case 5:
interludePre5(renderer)
level5(renderer)
case 6:
interludePre6(renderer)
level6(renderer)
interludePost6(renderer)
case 7:
level7(renderer)
case 8:

@ -0,0 +1,34 @@
package main
import (
"github.com/veandco/go-sdl2/sdl"
)
func interludePost6(renderer *sdl.Renderer) {
defer ResetHandlers()
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
image, rect := createTextText(renderer, "You finished: Establishing Protocol", HugeFont, sdl.Color{20, 20, 0, 255}, 1920 / 2, 1080 / 2)
for i := 0; i < 127; i++ {
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
renderer.Copy(image, nil, rect)
renderer.Present()
sdl.Delay(14)
}
waitForInteraction()
for i := 0; i < 127; i++ {
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
renderer.Copy(image, nil, rect)
transition(renderer, i * 2, 255)
renderer.Present()
sdl.Delay(14)
}
}

@ -13,12 +13,14 @@ func interludePre1(renderer *sdl.Renderer) {
//i, _ := sdl.LoadBMP("./assets/main_bg.bmp")
image, rect := createTextText(renderer, "Welcome", HugeFont, sdl.Color{20, 20, 0, 255}, 1920 / 2, 1080 / 2)
image, rect := createTextText(renderer, "1: Welcome", HugeFont, sdl.Color{20, 20, 0, 255}, 1920 / 2, 1080 / 2)
image2, rect2 := createTextText(renderer, "Aliens have made first contact. Translate their Signals.", smallFont, sdl.Color{20, 20, 0, 255}, 1920 / 2, 1080 / 2 + 130)
for i := 0; i < 127; i++ {
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
renderer.Copy(image, nil, rect)
renderer.Copy(image2, nil, rect2)
transition(renderer, i * 2, 0)
renderer.Present()
sdl.Delay(14)
@ -26,10 +28,24 @@ func interludePre1(renderer *sdl.Renderer) {
waitForInteraction()
image, rect = createTextText(renderer, "Grab a pen and paper", HugeFont, sdl.Color{20, 20, 0, 255}, 1920 / 2, 1080 / 2)
image2, rect2 = createTextText(renderer, "And get your favorite search enigne up and running.", smallFont, sdl.Color{20, 20, 0, 255}, 1920 / 2, 1080 / 2 + 130)
image3, rect3 := createTextText(renderer, "These levels are genuinely hard. Don't be afraid of using tips.", smallFont, sdl.Color{20, 20, 0, 255}, 1920 / 2, 1080 / 2 + 130 + 100)
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
renderer.Copy(image, nil, rect)
renderer.Copy(image2, nil, rect2)
renderer.Copy(image3, nil, rect3)
renderer.Present()
waitForInteraction()
for i := 0; i < 127; i++ {
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
renderer.Copy(image, nil, rect)
renderer.Copy(image2, nil, rect2)
renderer.Copy(image3, nil, rect3)
transition(renderer, i * 2, 255)
renderer.Present()
sdl.Delay(14)

@ -0,0 +1,40 @@
package main
import (
"github.com/veandco/go-sdl2/sdl"
)
func interludePre2(renderer *sdl.Renderer) {
defer ResetHandlers()
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
//i, _ := sdl.LoadBMP("./assets/main_bg.bmp")
image, rect := createTextText(renderer, "2: Extrapolate", HugeFont, sdl.Color{20, 20, 0, 255}, 1920 / 2, 1080 / 2)
image2, rect2 := createTextText(renderer, "A new element is introduced", smallFont, sdl.Color{20, 20, 0, 255}, 1920 / 2, 1080 / 2 + 130)
for i := 0; i < 127; i++ {
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
renderer.Copy(image, nil, rect)
renderer.Copy(image2, nil, rect2)
transition(renderer, i * 2, 0)
renderer.Present()
sdl.Delay(14)
}
waitForInteraction()
for i := 0; i < 127; i++ {
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
renderer.Copy(image, nil, rect)
renderer.Copy(image2, nil, rect2)
transition(renderer, i * 2, 255)
renderer.Present()
sdl.Delay(14)
}
}

@ -0,0 +1,35 @@
package main
import (
"github.com/veandco/go-sdl2/sdl"
)
func interludePre3(renderer *sdl.Renderer) {
defer ResetHandlers()
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
image, rect := createTextText(renderer, "3: Adding nothing", HugeFont, sdl.Color{20, 20, 0, 255}, 1920 / 2, 1080 / 2)
for i := 0; i < 127; i++ {
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
renderer.Copy(image, nil, rect)
transition(renderer, i * 2, 0)
renderer.Present()
sdl.Delay(14)
}
waitForInteraction()
for i := 0; i < 127; i++ {
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
renderer.Copy(image, nil, rect)
transition(renderer, i * 2, 255)
renderer.Present()
sdl.Delay(14)
}
}

@ -0,0 +1,35 @@
package main
import (
"github.com/veandco/go-sdl2/sdl"
)
func interludePre4(renderer *sdl.Renderer) {
defer ResetHandlers()
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
image, rect := createTextText(renderer, "4: More than one", HugeFont, sdl.Color{20, 20, 0, 255}, 1920 / 2, 1080 / 2)
for i := 0; i < 127; i++ {
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
renderer.Copy(image, nil, rect)
transition(renderer, i * 2, 0)
renderer.Present()
sdl.Delay(14)
}
waitForInteraction()
for i := 0; i < 127; i++ {
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
renderer.Copy(image, nil, rect)
transition(renderer, i * 2, 255)
renderer.Present()
sdl.Delay(14)
}
}

@ -0,0 +1,35 @@
package main
import (
"github.com/veandco/go-sdl2/sdl"
)
func interludePre5(renderer *sdl.Renderer) {
defer ResetHandlers()
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
image, rect := createTextText(renderer, "5: One step at a time", HugeFont, sdl.Color{20, 20, 0, 255}, 1920 / 2, 1080 / 2)
for i := 0; i < 127; i++ {
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
renderer.Copy(image, nil, rect)
transition(renderer, i * 2, 0)
renderer.Present()
sdl.Delay(14)
}
waitForInteraction()
for i := 0; i < 127; i++ {
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
renderer.Copy(image, nil, rect)
transition(renderer, i * 2, 255)
renderer.Present()
sdl.Delay(14)
}
}

@ -0,0 +1,38 @@
package main
import (
"github.com/veandco/go-sdl2/sdl"
)
func interludePre6(renderer *sdl.Renderer) {
defer ResetHandlers()
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
image, rect := createTextText(renderer, "6: You really got this?", HugeFont, sdl.Color{20, 20, 0, 255}, 1920 / 2, 1080 / 2)
image2, rect2 := createTextText(renderer, "\"One step at a time\" How about not?", smallFont, sdl.Color{20, 20, 0, 255}, 1920 / 2, 1080 / 2 + 130)
for i := 0; i < 127; i++ {
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
renderer.Copy(image, nil, rect)
renderer.Copy(image2, nil, rect2)
transition(renderer, i * 2, 0)
renderer.Present()
sdl.Delay(14)
}
waitForInteraction()
for i := 0; i < 127; i++ {
renderer.SetDrawColor(158, 158, 255, 255)
renderer.Clear()
renderer.Copy(image, nil, rect)
renderer.Copy(image2, nil, rect2)
transition(renderer, i * 2, 255)
renderer.Present()
sdl.Delay(14)
}
}

@ -43,7 +43,7 @@ func (k *keyField) Blit(renderer *sdl.Renderer) {
topREF := 1080 - height - 80
fieldRect := &sdl.Rect{leftREF, topREF, width, height}
fieldSurface, _ := sdl.CreateRGBSurface(0, width, height, 32, 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000)//0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000)
fieldSurface, _ := sdl.CreateRGBSurface(0, width, height, 32, 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000)
defer fieldSurface.Free()
for i := 0; i < len(k.enteredChar); i++ {

@ -34,6 +34,8 @@ func level1(renderer *sdl.Renderer) {
}
key1 := createKeyField(answer, func(){levelState++; running = false}, func(_ bool){})
i := 0
for running {
UpdateEvents()
renderer.SetDrawColor(158, 158, 255, 255)
@ -45,6 +47,7 @@ func level1(renderer *sdl.Renderer) {
key1.Blit(renderer)
BlitHelp(renderer)
i = transition(renderer, i * 2, 0)
renderer.Present()
sdl.Delay(15)
}

@ -15,8 +15,12 @@ func level2(renderer *sdl.Renderer) {
answer := "a"
solution = "The solution is \"" + answer + "\""
hints = []string{
"Lights that are turned on are bright",
"Think about numbers",
"Searach term is \"Binary\"",
"Remember 03 = 3",
"Read left to right",
"off on = 0 1",
}
buttons := []button{}
@ -32,6 +36,8 @@ func level2(renderer *sdl.Renderer) {
}
key1 := createKeyField(answer, func(){levelState++; running = false}, func(_ bool){})
i := 0
for running {
UpdateEvents()
renderer.SetDrawColor(158, 158, 255, 255)
@ -43,6 +49,7 @@ func level2(renderer *sdl.Renderer) {
key1.Blit(renderer)
BlitHelp(renderer)
i = transition(renderer, i * 2, 0)
renderer.Present()
sdl.Delay(15)
}

@ -16,7 +16,8 @@ func level3(renderer *sdl.Renderer) {
solution = "The solution is \"" + answer + "\""
hints = []string{
"Leading zeros don't change the number",
"Just like last time: 006 = 6",
"If you have trouble don't be afraid to ask the Internet",
"Search for binary numbers",
}
buttons := []button{}
@ -32,6 +33,8 @@ func level3(renderer *sdl.Renderer) {
}
key1 := createKeyField(answer, func(){levelState++; running = false}, func(_ bool){})
i := 0
for running {
UpdateEvents()
renderer.SetDrawColor(158, 158, 255, 255)
@ -43,6 +46,7 @@ func level3(renderer *sdl.Renderer) {
key1.Blit(renderer)
BlitHelp(renderer)
i = transition(renderer, i, 0)
renderer.Present()
sdl.Delay(15)
}

@ -16,9 +16,9 @@ func level4(renderer *sdl.Renderer) {
answer := "b"
solution = "The solution is \"" + answer + "\""
hints = []string{
"Think about what the number 15 really means",
"It means 1 * 10^1 + 5 * 10^0",
"Binary ist just the same: 10 = 1 * 2^1 + 0 * 2 ^ 0",
"What happens when you add 9 and 1 but only have one digit?",
"Overflow to the next digit",
"In binary adding 1 to 1 creates overflow",
}

@ -16,8 +16,9 @@ func level5(renderer *sdl.Renderer) {
answer := "c"
solution = "The solution is \"" + answer + "\""
hints = []string{
"Do you REALLY need help?",
"Alrighty then: 1 * 2 + 1 * 1",
"Get used to using binary",
"It might be sensible to draw a table",
"You really need to learn how to count in binary.",
}
buttons := []button{}
@ -33,6 +34,8 @@ func level5(renderer *sdl.Renderer) {
}
key1 := createKeyField(answer, func(){levelState++; running = false}, func(_ bool){})
i := 0
for running {
UpdateEvents()
renderer.SetDrawColor(158, 158, 255, 255)
@ -44,6 +47,7 @@ func level5(renderer *sdl.Renderer) {
key1.Blit(renderer)
BlitHelp(renderer)
i = transition(renderer, i, 0)
renderer.Present()
sdl.Delay(15)
}

@ -15,9 +15,44 @@ func level6(renderer *sdl.Renderer) {
answer := "e"
solution = "The solution is \"" + answer + "\""
hints = []string{
"WHOOO one number more",
"…",
"2^2 + 2^0",
"No. No tips for this one",
"Im serious",
"Really",
"How far are you going to take this?",
"I'm a program. I have more patience.",
"I can't hear you",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"Oh man are you bored",
}
buttons := []button{}
@ -33,6 +68,8 @@ func level6(renderer *sdl.Renderer) {
}
key1 := createKeyField(answer, func(){levelState++; running = false}, func(_ bool){})
i := 0
for running {
UpdateEvents()
renderer.SetDrawColor(158, 158, 255, 255)
@ -44,6 +81,7 @@ func level6(renderer *sdl.Renderer) {
key1.Blit(renderer)
BlitHelp(renderer)
i = transition(renderer, i, 0)
renderer.Present()
sdl.Delay(15)
}

@ -22,10 +22,11 @@ func ShowMainMenu(renderer *sdl.Renderer) {
rect := &sdl.Rect{0, 0, width, height}
kfStart := createKeyField("start", func(){gameState = 2; running = false}, func(bool){})
kfReset := createKeyField("reset", func(){levelState = 0}, func(bool){})
kfReset := createKeyField("reset", func(){levelState = 1}, func(bool){})
hints = []string{
"\"start\" \"reset\" are keywords. Use f1 to get a new tip.",
"I see you understand. No go on and start.",
"Just type start. ALright?",
"Really? Is this really neccessary?",
"Ok I am going to shut up now.",
"",

@ -63,7 +63,7 @@ func escapeListener(scancode sdl.Scancode) {
}
}
func transition(renderer *sdl.Renderer, i int, direction int) {
func transition(renderer *sdl.Renderer, i int, direction int) int {
renderer.SetDrawBlendMode(sdl.BLENDMODE_BLEND)
if direction <= 0 {
renderer.SetDrawColor(0, 0, 0, uint8(max(int(255 - float64(i) * (float64(i) / 16)), 0)))
@ -72,6 +72,8 @@ func transition(renderer *sdl.Renderer, i int, direction int) {
}
renderer.FillRect(nil)
renderer.SetDrawBlendMode(sdl.BLENDMODE_NONE)
if i <= 255 {return i + 1}
return 256
}
func waitForInteraction() {

Loading…
Cancel
Save