mirror of
https://github.com/jlengrand/korge-samples.git
synced 2026-03-10 08:31:18 +00:00
Add on-click interaction to box2d sample (#47)
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
import com.soywiz.korge.gradle.*
|
||||
import com.soywiz.korge.gradle.KorgeGradlePlugin
|
||||
import com.soywiz.korge.gradle.korge
|
||||
|
||||
apply<KorgeGradlePlugin>()
|
||||
|
||||
korge {
|
||||
id = "com.soywiz.sample1"
|
||||
name = "Sample1"
|
||||
name = "Box2D-Sample"
|
||||
description = "A sample using Korge and the gradle plugin"
|
||||
orientation = com.soywiz.korge.gradle.Orientation.LANDSCAPE
|
||||
jvmMainClassName = "Sample1Kt"
|
||||
|
||||
//admob("ca-app-pub-xxxxxxxx~yyyyyy")
|
||||
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
//import com.soywiz.korge.admob.*
|
||||
import com.soywiz.kds.*
|
||||
import com.soywiz.korge.*
|
||||
import com.soywiz.korge.box2d.*
|
||||
import com.soywiz.korge.view.*
|
||||
import com.soywiz.korgw.*
|
||||
import com.soywiz.korim.color.*
|
||||
import com.soywiz.korma.geom.*
|
||||
import org.jbox2d.common.*
|
||||
import org.jbox2d.dynamics.*
|
||||
|
||||
suspend fun main() = Korge(quality = GameWindow.Quality.PERFORMANCE, title = "My Awesome Box2D Game!") {
|
||||
solidRect(20, 20, Colors.RED).position(100, 100).centered.rotation(30.degrees).registerBodyWithFixture(type = BodyType.DYNAMIC, density = 2, friction = 0.01)
|
||||
solidRect(20, 20, Colors.RED).position(109, 75).centered.registerBodyWithFixture(type = BodyType.DYNAMIC)
|
||||
solidRect(20, 20, Colors.RED).position(93, 50).centered.rotation((-15).degrees).registerBodyWithFixture(type = BodyType.DYNAMIC)
|
||||
solidRect(400, 100, Colors.WHITE).position(100, 300).centered.registerBodyWithFixture(type = BodyType.STATIC, friction = 0.2)
|
||||
}
|
||||
16
samples/box2d/src/commonMain/kotlin/SampleKTree.kt
Normal file
16
samples/box2d/src/commonMain/kotlin/SampleKTree.kt
Normal file
@@ -0,0 +1,16 @@
|
||||
import com.soywiz.korge.Korge
|
||||
import com.soywiz.korge.box2d.registerBox2dSupportOnce
|
||||
import com.soywiz.korge.view.ktree.readKTree
|
||||
import com.soywiz.korgw.GameWindow
|
||||
import com.soywiz.korio.file.std.resourcesVfs
|
||||
|
||||
/**
|
||||
* Not used in gradle run! Check `main.kt`.
|
||||
*
|
||||
* Uses a `ktree` asset which is editable in the [KorGE Visual Editor](https://korlibs.soywiz.com/korge/editor/).
|
||||
*/
|
||||
suspend fun main() =
|
||||
Korge(width = 920, height = 720, quality = GameWindow.Quality.PERFORMANCE, title = "My Awesome Box2D Game!") {
|
||||
registerBox2dSupportOnce()
|
||||
addChild(resourcesVfs["restitution.ktree"].readKTree(views))
|
||||
}
|
||||
@@ -1,10 +1,42 @@
|
||||
import com.soywiz.korge.*
|
||||
import com.soywiz.korge.box2d.*
|
||||
import com.soywiz.korge.view.ktree.*
|
||||
import com.soywiz.korgw.*
|
||||
import com.soywiz.korio.file.std.*
|
||||
import com.soywiz.korge.Korge
|
||||
import com.soywiz.korge.box2d.registerBodyWithFixture
|
||||
import com.soywiz.korge.input.onClick
|
||||
import com.soywiz.korge.view.position
|
||||
import com.soywiz.korge.view.rotation
|
||||
import com.soywiz.korge.view.solidRect
|
||||
import com.soywiz.korgw.GameWindow
|
||||
import com.soywiz.korim.color.Colors
|
||||
import com.soywiz.korma.geom.Angle
|
||||
import com.soywiz.korma.geom.degrees
|
||||
import org.jbox2d.dynamics.BodyType
|
||||
import kotlin.random.Random
|
||||
|
||||
/**
|
||||
* Interactive sample for the integrated [Box-2D](http://www.jbox2d.org) physic lib.
|
||||
*
|
||||
* Click on any place to span a new box!
|
||||
*/
|
||||
suspend fun main() = Korge(
|
||||
width = 800, height = 800,
|
||||
quality = GameWindow.Quality.PERFORMANCE, title = "My Awesome Box2D Game!"
|
||||
) {
|
||||
|
||||
solidRect(50, 50, Colors.RED).position(400, 50).rotation(30.degrees)
|
||||
.registerBodyWithFixture(type = BodyType.DYNAMIC, density = 2, friction = 0.01)
|
||||
solidRect(50, 50, Colors.RED).position(300, 100).registerBodyWithFixture(type = BodyType.DYNAMIC)
|
||||
solidRect(50, 50, Colors.RED).position(450, 100).rotation(15.degrees)
|
||||
.registerBodyWithFixture(type = BodyType.DYNAMIC)
|
||||
solidRect(600, 100, Colors.WHITE).position(100, 600).registerBodyWithFixture(
|
||||
type = BodyType.STATIC,
|
||||
friction = 0.2
|
||||
)
|
||||
|
||||
onClick {
|
||||
val pos = it.currentPosLocal
|
||||
solidRect(50, 50, Colors.RED).position(pos.x, pos.y).rotation(randomAngle())
|
||||
.registerBodyWithFixture(type = BodyType.DYNAMIC)
|
||||
}
|
||||
|
||||
suspend fun main() = Korge(width = 920, height = 720, quality = GameWindow.Quality.PERFORMANCE, title = "My Awesome Box2D Game!") {
|
||||
registerBox2dSupportOnce()
|
||||
addChild(resourcesVfs["restitution.ktree"].readKTree(views))
|
||||
}
|
||||
|
||||
fun randomAngle(): Angle = Random.nextInt(0, 90).degrees
|
||||
|
||||
Reference in New Issue
Block a user