我正试图借助来制作等距迷宫游戏 https://github.com/FabianTerhorst/Isometric
我能够创建一个迷宫,但是我无法弄清楚如何在正确适合迷宫的等距迷宫中放置一个球体(或球),以使这些后视图,可见的看不见的视图不打扰为。例如,在某些地方,球会藏在墙上,而在某些地方,墙壁会藏在墙上,我应该如何进行? 还有一些可以使球旋转的方法,就像真实的旋转一样
package com.example.mkmnim.maze
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.util.EventLog
import android.util.Log
import android.util.MutableFloat
import android.view.MotionEvent
import android.widget.ImageView
import io.fabianterhorst.isometric.paths.Circle
import kotlinx.android.synthetic.main.activity_main.*
import io.fabianterhorst.isometric.shapes.Prism
import org.json.JSONObject
import com.example.mkmnim.maze.R.id.isometricView
import io.fabianterhorst.isometric.*
import java.lang.Math.abs
class MainActivity : AppCompatActivity()
{
lateinit var ballView: ImageView
inline fun <reified T> toArray(list: List<*>): Array<T>
{
return (list as List<T>).toTypedArray()
}
override fun onCreate(savedInstanceState: Bundle?)
{
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var mazeJson: JSONObject? = JSONObject(utils.getJson("maze1.json", this))
try
{
for (i in 1..21)
{
for (j in 1..11)
{
Log.i("mytag", i.toString() + "," + j.toString())
if (mazeJson != null)
{
if (mazeJson.getJSONObject((i - 1).toString()).getBoolean((j - 1).toString()))
{
var prism = Prism(Point((i - 3).toDouble() * 0.5, (j - 3).toDouble() * 0.5, 0.0), 0.5, 0.5, 0.5)
isometricView.add(prism, Color(33.0, 150.0, 243.0))
}
}
}
}
}
catch (ex: Exception)
{
Log.i("mytag", ex.message.toString())
}
ballView = ball
}
}
{"0":{"0":true,"1":true,"2":true,"3":true,"4":true,"5":true,"6":true,"7":true,"8":true,"9":true,"10":true},"1":{"0":true,"1":false,"2":false,"3":false,"4":true,"5":false,"6":false,"7":false,"8":false,"9":false,"10":true},"2":{"0":true,"1":false,"2":true,"3":true,"4":true,"5":true,"6":true,"7":true,"8":true,"9":false,"10":true},"3":{"0":true,"1":false,"2":false,"3":false,"4":false,"5":false,"6":false,"7":false,"8":true,"9":false,"10":true},"4":{"0":true,"1":false,"2":true,"3":true,"4":true,"5":false,"6":true,"7":true,"8":true,"9":false,"10":true},"5":{"0":true,"1":false,"2":true,"3":false,"4":true,"5":false,"6":true,"7":false,"8":false,"9":false,"10":true},"6":{"0":true,"1":false,"2":true,"3":false,"4":true,"5":false,"6":true,"7":true,"8":true,"9":false,"10":true},"7":{"0":true,"1":false,"2":true,"3":false,"4":true,"5":false,"6":false,"7":false,"8":true,"9":false,"10":true},"8":{"0":true,"1":false,"2":true,"3":false,"4":true,"5":true,"6":true,"7":false,"8":true,"9":false,"10":true},"9":{"0":true,"1":false,"2":false,"3":false,"4":false,"5":false,"6":true,"7":false,"8":false,"9":false,"10":true},"10":{"0":true,"1":false,"2":true,"3":true,"4":true,"5":false,"6":true,"7":true,"8":true,"9":false,"10":true},"11":{"0":true,"1":false,"2":true,"3":false,"4":false,"5":false,"6":false,"7":false,"8":true,"9":false,"10":true},"12":{"0":true,"1":false,"2":true,"3":false,"4":true,"5":true,"6":true,"7":false,"8":true,"9":false,"10":true},"13":{"0":true,"1":false,"2":true,"3":false,"4":true,"5":false,"6":true,"7":false,"8":false,"9":false,"10":true},"14":{"0":true,"1":false,"2":true,"3":true,"4":true,"5":false,"6":true,"7":true,"8":true,"9":false,"10":true},"15":{"0":true,"1":false,"2":false,"3":false,"4":false,"5":false,"6":false,"7":false,"8":false,"9":false,"10":true},"16":{"0":true,"1":false,"2":true,"3":false,"4":true,"5":true,"6":true,"7":false,"8":true,"9":false,"10":true},"17":{"0":true,"1":false,"2":true,"3":false,"4":true,"5":false,"6":true,"7":false,"8":true,"9":false,"10":true},"18":{"0":true,"1":false,"2":true,"3":false,"4":true,"5":false,"6":true,"7":true,"8":true,"9":false,"10":true},"19":{"0":true,"1":false,"2":false,"3":false,"4":true,"5":false,"6":false,"7":false,"8":false,"9":false,"10":true},"20":{"0":true,"1":true,"2":true,"3":true,"4":true,"5":true,"6":true,"7":true,"8":true,"9":true,"10":true}}
package com.example.mkmnim.maze
import android.content.Context
import android.util.Log
import java.io.IOException
import java.nio.charset.Charset
object utils
{
fun getJson(filename: String, context: Context): String?
{
var json: String? = null
try
{
var iqw = context.getAssets().open(filename)
val size = iqw.available()
val buffer = ByteArray(size)
iqw.read(buffer)
iqw.close()
json = String(buffer, Charset.defaultCharset())
}
catch (ex: IOException)
{
ex.printStackTrace()
Log.i("mytag", ex.toString())
}
return json
}
}