First uncompleted version of coffee

This commit is contained in:
Carlos Ballesteros Velasco
2017-05-07 01:41:18 +02:00
parent b68c6002e1
commit 2b86a4c8cf
14 changed files with 220 additions and 5 deletions

7
.editorconfig Normal file
View File

@@ -0,0 +1,7 @@
root = true
[*]
end_of_line = lf
insert_final_newline = true
indent_style = tab
indent_size = 4

9
.gitignore vendored
View File

@@ -1,4 +1,5 @@
.idea
.gradle
build
classes
.idea
.gradle
/build
/classes

2
korge-coffee/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
/build
/genresources

42
korge-coffee/build.gradle Normal file
View File

@@ -0,0 +1,42 @@
apply from: "../include.gradle"
apply plugin: 'kotlin'
apply plugin: 'application'
mainClassName = "com.soywiz.korge.games.coffee.KorgeCoffeeModule"
sourceSets {
generated.resources.srcDirs = [ 'genresources' ]
main.kotlin.srcDirs = [ 'src' ]
main.resources.srcDirs = [ 'resources', 'genresources' ]
test.kotlin.srcDirs = [ 'test' ]
}
dependencies {
compile "com.soywiz:korge:$korVersion"
compile "com.soywiz:korge-ext-swf:$korVersion"
compile "com.soywiz:korau-mp3:$korVersion"
nojtransc "com.soywiz:korge-ext-swf:$korVersion"
nojtransc "com.soywiz:korau-mp3:$korVersion"
}
jtransc {
minimizeNames = true
treeshaking = true
assets("resources")
assets("genresources")
skipServiceLoader("com.soywiz.korim.format.JPEG")
skipServiceLoader("com.soywiz.korim.format.PNG")
skipServiceLoader("com.soywiz.korau.format.MP3")
skipServiceLoader("com.soywiz.korau.format.OGG")
}
jar.enabled = false
distTar.enabled = false
distZip.enabled = false

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

View File

@@ -0,0 +1,12 @@
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="icon" type="image/x-icon" href="icon.png" />
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name = "viewport" content = "width=device-width, initial-scale=1.0, user-scalable=no">
</head>
<body>
<script src="program.js" type="text/javascript"></script>
</body>
</html>

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,2 @@
mipmaps = true
exportScale = 2.0

View File

@@ -0,0 +1,147 @@
package com.soywiz.korge.games.coffee
import com.soywiz.korge.Korge
import com.soywiz.korge.animate.AnLibrary
import com.soywiz.korge.component.docking.jekllyButton
import com.soywiz.korge.resources.Path
import com.soywiz.korge.scene.*
import com.soywiz.korge.service.Browser
import com.soywiz.korge.time.seconds
import com.soywiz.korge.time.sleep
import com.soywiz.korge.tween.Easing
import com.soywiz.korge.tween.get
import com.soywiz.korge.tween.tween
import com.soywiz.korge.view.Camera
import com.soywiz.korge.view.Container
import com.soywiz.korge.view.camera
import com.soywiz.korge.view.get
import com.soywiz.korim.color.ColorTransform
import com.soywiz.korio.async.AsyncSignal
import com.soywiz.korio.async.go
import com.soywiz.korio.inject.Singleton
import java.net.URL
object KorgeCoffeeModule : Module() {
@JvmStatic fun main(args: Array<String>) = Korge(this@KorgeCoffeeModule)
override val title: String = "KorGE Coffee"
override val mainScene: Class<out Scene> = MainScene::class.java
override val width: Int = (720 * 0.75).toInt()
override val height: Int = (1280 * 0.75).toInt()
override val virtualHeight: Int = 1280
override val virtualWidth: Int = 720
override val icon: String = "icon.png"
object StartMessage
//object CloseCredits
@Singleton
class LibraryContainer(
@Path("main.ani") val library: AnLibrary
)
class CreditsScene(
val lib: LibraryContainer,
val browser: Browser
) : Scene() {
suspend override fun sceneInit(sceneView: Container) {
sceneView += lib.library.createMovieClip("Credits")
sceneView["korge"].jekllyButton(1.2).onClick { browser.browse(URL("http://korge.soywiz.com/")) }
sceneView["kotlin"].jekllyButton(1.2).onClick { browser.browse(URL("https://kotlinlang.org/")) }
sceneView["animate"].jekllyButton(1.2).onClick { browser.browse(URL("http://www.adobe.com/products/animate.html")) }
sceneView["github"].jekllyButton(1.2).onClick { browser.browse(URL("https://github.com/soywiz/korge-samples/tree/master/korge-coffee")) }
sceneView["soywiz"].jekllyButton(1.2).onClick { browser.browse(URL("http://soywiz.com/")) }
sceneView["tamy"].jekllyButton(1.2).onClick { browser.browse(URL("http://comic.tamy.es/")) }
sceneView["close"].jekllyButton(1.2).onClick { this.sceneContainer.back(time = 0.3.seconds) }
}
suspend override fun sceneBeforeLeaving() {
super.sceneBeforeLeaving()
sceneView.mouseEnabled = false
}
}
class MainMenuScene(
val lib: LibraryContainer
) : Scene() {
lateinit var creditsSC: SceneContainer
val onStart = AsyncSignal<Unit>()
suspend override fun sceneInit(sceneView: Container) {
sceneView += lib.library.createMovieClip("MainMenu")
creditsSC = views.sceneContainer()
sceneView += creditsSC
sceneView["playButton"].jekllyButton(1.2).onClick {
//bus.send(StartMessage)
onStart(Unit)
}
sceneView["creditsButton"].jekllyButton(1.2).onClick {
creditsSC.pushTo<CreditsScene>(time = 0.2.seconds)
}
//o {
// sleep(1.seconds)
// bus.send(StartMessage)
//
}
suspend override fun sceneBeforeLeaving() {
super.sceneBeforeLeaving()
sceneView.mouseEnabled = false
}
}
class MainScene(
val lib: LibraryContainer
) : Scene() {
lateinit var camera: Camera
lateinit var mainMenuSC: SceneContainer
//@BusHandler suspend fun handle(s: StartMessage) {
// //views.clearEachFrame = false
// go {
// mainMenuSC.changeTo<EmptyScene>(time = 1.seconds, transition = AlphaTransition.withEasing(Easing.EASE_OUT_QUAD))
// }
// startGame()
// //views.clearEachFrame = true
//}
suspend override fun sceneInit(sceneView: Container) {
camera = views.camera()
sceneView += lib.library.createMovieClip("Cameras").apply { visible = false }
sceneView += camera.apply {
this += lib.library.createMovieClip("Ingame")
}
mainMenuSC = views.sceneContainer()
sceneView += mainMenuSC
val mainMenu = mainMenuSC.pushTo<MainMenuScene>()
mainMenu.onStart {
go {
mainMenuSC.back(time = 1.seconds, transition = AlphaTransition.withEasing(Easing.EASE_OUT_QUAD))
}
startGame()
}
//println(sceneView["action"])
//println(sceneView["menuCamera"]?.getGlobalBounds())
//println(sceneView["ingameCamera"]?.getGlobalBounds())
//println(camera.getLocalMatrixFittingView(sceneView["ingameCamera"]!!))
camera.setTo(sceneView["menuCamera"]!!)
sceneView["action"]?.colorTransform = ColorTransform.Add(-255, -255, -255, 0)
}
suspend fun startGame() {
go {
val action = sceneView["action"]
action?.tween(action::colorTransform[ColorTransform.Add(0, 0, 0, 0)], time = 5.seconds, easing = Easing.LINEAR)
}
camera.tweenTo(sceneView["showCamera"], time = 2.seconds, easing = Easing.EASE_IN_OUT_QUAD)
camera.sleep(0.5.seconds)
go {
val background = sceneView["background"]
background?.tween(background::alpha[1.0], time = 1.seconds, easing = Easing.EASE_OUT_ELASTIC)
}
camera.tweenTo(sceneView["ingameCamera"], time = 1.seconds, easing = Easing.EASE_OUT_ELASTIC)
}
}
}

View File

@@ -1 +1,2 @@
genresources
/build
/genresources

View File

@@ -2,4 +2,5 @@ rootProject.name = 'korge-samples'
include(
'korge-tic-tac-toe',
'korge-coffee',
)