auts: draw some tile
This commit is contained in:
parent
c8fd05407c
commit
a475def9f8
|
@ -0,0 +1,8 @@
|
||||||
|
module main
|
||||||
|
|
||||||
|
struct Cell {
|
||||||
|
mut:
|
||||||
|
z int
|
||||||
|
|
||||||
|
tile_id int
|
||||||
|
}
|
|
@ -53,7 +53,9 @@ fn (mut d Drawer) draw_image() {
|
||||||
|
|
||||||
fn (mut d Drawer) draw_tex(tex voidptr, px, py int) {
|
fn (mut d Drawer) draw_tex(tex voidptr, px, py int) {
|
||||||
if isnil(tex) {
|
if isnil(tex) {
|
||||||
return
|
println("tex is nil")
|
||||||
|
pp(2)
|
||||||
|
//return
|
||||||
}
|
}
|
||||||
texw := 0
|
texw := 0
|
||||||
texh := 0
|
texh := 0
|
||||||
|
|
|
@ -5,11 +5,17 @@ mut:
|
||||||
w int
|
w int
|
||||||
h int
|
h int
|
||||||
cells [][]Cell
|
cells [][]Cell
|
||||||
|
view &FieldView
|
||||||
|
|
||||||
|
ctx &Context
|
||||||
}
|
}
|
||||||
|
|
||||||
fn new_field() &Field {
|
fn new_field(mut ctx Context) &Field {
|
||||||
println("new_field()")
|
println("new_field()")
|
||||||
f := &Field{}
|
f := &Field{
|
||||||
|
view: &FieldView(0),
|
||||||
|
ctx: ctx,
|
||||||
|
}
|
||||||
return f
|
return f
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,11 +36,7 @@ fn (mut f Field) generate(w, h int) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
fn (mut f Field) spawn() {
|
||||||
// Cell
|
f.view = new_fieldview(f)
|
||||||
//
|
f.view.spawn()
|
||||||
|
|
||||||
struct Cell {
|
|
||||||
mut:
|
|
||||||
z int
|
|
||||||
}
|
}
|
|
@ -0,0 +1,79 @@
|
||||||
|
module main
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
struct FieldView {
|
||||||
|
mut:
|
||||||
|
m &Field
|
||||||
|
tiles map[string]voidptr
|
||||||
|
}
|
||||||
|
|
||||||
|
fn new_fieldview(m &Field) &FieldView {
|
||||||
|
v := &FieldView{
|
||||||
|
m: m,
|
||||||
|
}
|
||||||
|
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
|
fn (mut v FieldView) load() {
|
||||||
|
println("fieldview load()")
|
||||||
|
|
||||||
|
path := "res/images/tiles/test1"
|
||||||
|
|
||||||
|
for f in os.walk_ext(path, ".png") {
|
||||||
|
println("f: $f")
|
||||||
|
//mut name := os.file_name(f).trim_right(".png")
|
||||||
|
mut name := os.file_name(f).all_before_last(".png")
|
||||||
|
//println("z: $name")
|
||||||
|
if name.count("_") != 1 {
|
||||||
|
//idx := name.index_after(5)
|
||||||
|
name = name.all_before_last("_")
|
||||||
|
}
|
||||||
|
println("name: $name")
|
||||||
|
|
||||||
|
tex := v.m.ctx.drawer.load_image_tex(f)
|
||||||
|
|
||||||
|
v.tiles[name] = tex
|
||||||
|
|
||||||
|
//pp(2)
|
||||||
|
}
|
||||||
|
|
||||||
|
//pp(2)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn (mut v FieldView) spawn() {
|
||||||
|
println("fiedview spawn()")
|
||||||
|
|
||||||
|
v.load()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn (mut v FieldView) draw() {
|
||||||
|
println("fieldview draw()")
|
||||||
|
|
||||||
|
c_tile_w := 32
|
||||||
|
c_tile_h := 16
|
||||||
|
|
||||||
|
for y in 0 .. v.m.h {
|
||||||
|
for x in 0 .. v.m.w {
|
||||||
|
c := v.m.cells[x][y]
|
||||||
|
|
||||||
|
name := "tile_${c.tile_id}"
|
||||||
|
|
||||||
|
println("name: $name")
|
||||||
|
|
||||||
|
tex := v.tiles[name]
|
||||||
|
|
||||||
|
if isnil(tex) {
|
||||||
|
println("tex is nil")
|
||||||
|
pp(2)
|
||||||
|
}
|
||||||
|
|
||||||
|
px := c_tile_w * x
|
||||||
|
py := c_tile_h * y
|
||||||
|
|
||||||
|
//v.m.ctx.drawer.draw_tex(px, py, tex)
|
||||||
|
v.m.ctx.drawer.draw_tex(tex, px, py)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
1u h = 20px
|
||||||
|
|
||||||
|
archer h = ~40px = ~2m
|
||||||
|
wall h = ~3 archer h = ~6m
|
||||||
|
wall w = ~2 tiles
|
|
@ -5,7 +5,9 @@ import time
|
||||||
fn main() {
|
fn main() {
|
||||||
println("main()")
|
println("main()")
|
||||||
|
|
||||||
mut f := new_field()
|
mut ctx := new_context()
|
||||||
|
|
||||||
|
mut f := new_field(mut ctx)
|
||||||
|
|
||||||
f.generate(4, 4)
|
f.generate(4, 4)
|
||||||
|
|
||||||
|
@ -13,14 +15,16 @@ fn main() {
|
||||||
println("z 0 0: ${f.cells[0][0].z}")
|
println("z 0 0: ${f.cells[0][0].z}")
|
||||||
println("z 1 1: ${f.cells[1][1].z}")
|
println("z 1 1: ${f.cells[1][1].z}")
|
||||||
|
|
||||||
|
f.cells[1][1].tile_id = 1
|
||||||
mut ctx := new_context()
|
f.cells[2][2].tile_id = 2
|
||||||
|
|
||||||
|
|
||||||
mut app := new_app(mut ctx)
|
mut app := new_app(mut ctx)
|
||||||
|
|
||||||
app.init(800, 600, "auts")
|
app.init(800, 600, "auts")
|
||||||
|
|
||||||
|
f.spawn()
|
||||||
|
|
||||||
//d := new_drawer(mut ctx)
|
//d := new_drawer(mut ctx)
|
||||||
mut d := ctx.drawer
|
mut d := ctx.drawer
|
||||||
|
|
||||||
|
@ -31,7 +35,8 @@ fn main() {
|
||||||
|
|
||||||
d.clear()
|
d.clear()
|
||||||
|
|
||||||
d.draw_tex(tex, 0, 0)
|
f.view.draw()
|
||||||
|
//d.draw_tex(tex, 0, 0)
|
||||||
|
|
||||||
app.flip()
|
app.flip()
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue