diff --git a/.idea/modules/kudens_main.iml b/.idea/modules/kudens_main.iml
index d8b2113..0cb94fb 100644
--- a/.idea/modules/kudens_main.iml
+++ b/.idea/modules/kudens_main.iml
@@ -26,7 +26,21 @@
diff --git a/.idea/modules/kudens_main.iml b/.idea/modules/kudens_main.iml
index d8b2113..0cb94fb 100644
--- a/.idea/modules/kudens_main.iml
+++ b/.idea/modules/kudens_main.iml
@@ -26,7 +26,21 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.idea/modules/kudens_test.iml b/.idea/modules/kudens_test.iml
index fdb3b82..63591a0 100644
--- a/.idea/modules/kudens_test.iml
+++ b/.idea/modules/kudens_test.iml
@@ -26,7 +26,21 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.idea/modules/kudens_main.iml b/.idea/modules/kudens_main.iml
index d8b2113..0cb94fb 100644
--- a/.idea/modules/kudens_main.iml
+++ b/.idea/modules/kudens_main.iml
@@ -26,7 +26,21 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.idea/modules/kudens_test.iml b/.idea/modules/kudens_test.iml
index fdb3b82..63591a0 100644
--- a/.idea/modules/kudens_test.iml
+++ b/.idea/modules/kudens_test.iml
@@ -26,7 +26,21 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/kotlin/games/perses/game/Game.kt b/src/main/kotlin/games/perses/game/Game.kt
index 8f6185d..a3391ec 100644
--- a/src/main/kotlin/games/perses/game/Game.kt
+++ b/src/main/kotlin/games/perses/game/Game.kt
@@ -37,8 +37,31 @@
container.appendChild(webGlCanvas)
container.appendChild(canvas)
- webgl = webGlCanvas.getContext("webgl") as WebGLRenderingContext
- canvas2d = canvas.getContext("2d") as CanvasRenderingContext2D
+ val canvas2dcanvas = canvas.getContext("2d")
+
+ var webglcanvas = webGlCanvas.getContext("webgl")
+ if (webglcanvas == null) {
+ console.log("webgl context not found, trying experimental-webgl.")
+ webglcanvas = webGlCanvas.getContext("experimental-webgl")
+ }
+
+ if (webglcanvas is WebGLRenderingContext) {
+ webgl = webglcanvas
+ } else {
+ console.log("webgl?", webglcanvas)
+ window.alert("Your browser doesn't seem to support webgl!")
+
+ throw IllegalStateException("Your browser doesn't seem to support webgl!")
+ }
+
+ if (canvas2dcanvas is CanvasRenderingContext2D) {
+ canvas2d = canvas2dcanvas
+ } else {
+ console.log("canvas2d?", canvas2dcanvas)
+ window.alert("Your browser doesn't seem to support 2d canvas!")
+
+ throw IllegalStateException("Your browser doesn't seem to support webgl!")
+ }
}
}
diff --git a/.idea/modules/kudens_main.iml b/.idea/modules/kudens_main.iml
index d8b2113..0cb94fb 100644
--- a/.idea/modules/kudens_main.iml
+++ b/.idea/modules/kudens_main.iml
@@ -26,7 +26,21 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.idea/modules/kudens_test.iml b/.idea/modules/kudens_test.iml
index fdb3b82..63591a0 100644
--- a/.idea/modules/kudens_test.iml
+++ b/.idea/modules/kudens_test.iml
@@ -26,7 +26,21 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/kotlin/games/perses/game/Game.kt b/src/main/kotlin/games/perses/game/Game.kt
index 8f6185d..a3391ec 100644
--- a/src/main/kotlin/games/perses/game/Game.kt
+++ b/src/main/kotlin/games/perses/game/Game.kt
@@ -37,8 +37,31 @@
container.appendChild(webGlCanvas)
container.appendChild(canvas)
- webgl = webGlCanvas.getContext("webgl") as WebGLRenderingContext
- canvas2d = canvas.getContext("2d") as CanvasRenderingContext2D
+ val canvas2dcanvas = canvas.getContext("2d")
+
+ var webglcanvas = webGlCanvas.getContext("webgl")
+ if (webglcanvas == null) {
+ console.log("webgl context not found, trying experimental-webgl.")
+ webglcanvas = webGlCanvas.getContext("experimental-webgl")
+ }
+
+ if (webglcanvas is WebGLRenderingContext) {
+ webgl = webglcanvas
+ } else {
+ console.log("webgl?", webglcanvas)
+ window.alert("Your browser doesn't seem to support webgl!")
+
+ throw IllegalStateException("Your browser doesn't seem to support webgl!")
+ }
+
+ if (canvas2dcanvas is CanvasRenderingContext2D) {
+ canvas2d = canvas2dcanvas
+ } else {
+ console.log("canvas2d?", canvas2dcanvas)
+ window.alert("Your browser doesn't seem to support 2d canvas!")
+
+ throw IllegalStateException("Your browser doesn't seem to support webgl!")
+ }
}
}
diff --git a/src/main/kotlin/games/perses/sound/Sounds.kt b/src/main/kotlin/games/perses/sound/Sounds.kt
index 806fd54..4efa4dd 100644
--- a/src/main/kotlin/games/perses/sound/Sounds.kt
+++ b/src/main/kotlin/games/perses/sound/Sounds.kt
@@ -10,7 +10,7 @@
*/
class Sound(val name:String, val url: String, val volume: Double = 0.75, val numberOfChannels: Int) {
- var channels: Array
+ var channels: Array
var nextChannel: Int = 0
init {
@@ -18,24 +18,26 @@
channels = Array(numberOfChannels, { document.createElement("audio") as HTMLAudioElement })
for (audio in channels) {
- audio.src = url
- audio.pause()
- audio.load()
- audio.volume = volume
+ if (audio != null) {
+ audio.src = url
+ audio.pause()
+ audio.load()
+ audio.volume = volume
+ }
}
}
fun play() {
//println("PLAYING: $name - $nextChannel")
- channels[nextChannel].currentTime = 0.0
- channels[nextChannel].play()
+ channels[nextChannel]?.currentTime = 0.0
+ channels[nextChannel]?.play()
nextChannel = (nextChannel + 1) % channels.size
}
fun pause() {
for (audio in channels) {
- audio.pause()
+ audio?.pause()
}
}
}