libraries_setup #3
@ -14,8 +14,6 @@ components.dict = {
|
|||||||
segment_count = "perspective.segment_count",
|
segment_count = "perspective.segment_count",
|
||||||
rumble_length = "perspective.rumble_length",
|
rumble_length = "perspective.rumble_length",
|
||||||
|
|
||||||
scroll = "perspective.scroll",
|
|
||||||
|
|
||||||
segment_path = "perspective.segment_path",
|
segment_path = "perspective.segment_path",
|
||||||
segment_sprite_map_path = "perspective.segment_sprite_map_path"
|
segment_sprite_map_path = "perspective.segment_sprite_map_path"
|
||||||
}
|
}
|
||||||
@ -60,10 +58,6 @@ function components.rumble_length (c, x)
|
|||||||
c.data = x
|
c.data = x
|
||||||
end
|
end
|
||||||
|
|
||||||
function components.scroll (c, x)
|
|
||||||
c.data = x
|
|
||||||
end
|
|
||||||
|
|
||||||
function components.segment_path (c, x)
|
function components.segment_path (c, x)
|
||||||
c.data = x
|
c.data = x
|
||||||
end
|
end
|
||||||
|
|||||||
13
game/src/world/2_town_square/component/pos3d.lua
Normal file
13
game/src/world/2_town_square/component/pos3d.lua
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
local vm = require("lib.vornmath")
|
||||||
|
|
||||||
|
local components = {}
|
||||||
|
|
||||||
|
components.dict = {
|
||||||
|
pos = "pos3d.pos"
|
||||||
|
}
|
||||||
|
|
||||||
|
function components.pos (c, x, y, z)
|
||||||
|
c.data = vm.vec3({x, y, z})
|
||||||
|
end
|
||||||
|
|
||||||
|
return components
|
||||||
@ -1,7 +1,10 @@
|
|||||||
local system_constructor = require("wrapper.Concord.system")
|
local system_constructor = require("wrapper.Concord.system")
|
||||||
|
|
||||||
local roadsegment = require("src.world.2_town_square.pseudo3d.roadsegment")
|
local roadsegment = require("src.world.2_town_square.pseudo3d.roadsegment")
|
||||||
|
|
||||||
local perspective = require("src.world.2_town_square.component.perspective")
|
local perspective = require("src.world.2_town_square.component.perspective")
|
||||||
|
local pos3d = require("src.world.2_town_square.component.pos3d")
|
||||||
|
|
||||||
local projection = require("lib.choro.projection")
|
local projection = require("lib.choro.projection")
|
||||||
local ease = require("src.world.2_town_square.pseudo3d.ease")
|
local ease = require("src.world.2_town_square.pseudo3d.ease")
|
||||||
local vm = require("lib.vornmath")
|
local vm = require("lib.vornmath")
|
||||||
@ -21,11 +24,12 @@ system.pool = {
|
|||||||
perspective.dict.resolution,
|
perspective.dict.resolution,
|
||||||
perspective.dict.road_width,
|
perspective.dict.road_width,
|
||||||
perspective.dict.rumble_length,
|
perspective.dict.rumble_length,
|
||||||
perspective.dict.scroll,
|
|
||||||
perspective.dict.segment_count,
|
perspective.dict.segment_count,
|
||||||
perspective.dict.segment_length,
|
perspective.dict.segment_length,
|
||||||
perspective.dict.segment_path,
|
perspective.dict.segment_path,
|
||||||
perspective.dict.segment_sprite_map_path
|
perspective.dict.segment_sprite_map_path,
|
||||||
|
|
||||||
|
pos3d.dict.pos,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,11 +42,12 @@ system.components = {
|
|||||||
[perspective.dict.resolution] = perspective.resolution,
|
[perspective.dict.resolution] = perspective.resolution,
|
||||||
[perspective.dict.road_width] = perspective.road_width,
|
[perspective.dict.road_width] = perspective.road_width,
|
||||||
[perspective.dict.rumble_length] = perspective.rumble_length,
|
[perspective.dict.rumble_length] = perspective.rumble_length,
|
||||||
[perspective.dict.scroll] = perspective.scroll,
|
|
||||||
[perspective.dict.segment_count] = perspective.segment_count,
|
[perspective.dict.segment_count] = perspective.segment_count,
|
||||||
[perspective.dict.segment_length] = perspective.segment_length,
|
[perspective.dict.segment_length] = perspective.segment_length,
|
||||||
[perspective.dict.segment_path] = perspective.segment_path,
|
[perspective.dict.segment_path] = perspective.segment_path,
|
||||||
[perspective.dict.segment_sprite_map_path] = perspective.segment_sprite_map_path
|
[perspective.dict.segment_sprite_map_path] = perspective.segment_sprite_map_path,
|
||||||
|
|
||||||
|
[pos3d.dict.pos] = pos3d.pos,
|
||||||
}
|
}
|
||||||
function system.new()
|
function system.new()
|
||||||
local new_system = system_constructor.new("perspective", system.pool)
|
local new_system = system_constructor.new("perspective", system.pool)
|
||||||
@ -62,7 +67,8 @@ function system:load()
|
|||||||
local segment_sprite_map_path = e[perspective.dict.segment_sprite_map_path].data
|
local segment_sprite_map_path = e[perspective.dict.segment_sprite_map_path].data
|
||||||
local segment_length = e[perspective.dict.segment_length].data
|
local segment_length = e[perspective.dict.segment_length].data
|
||||||
local rumble_length = e[perspective.dict.rumble_length].data
|
local rumble_length = e[perspective.dict.rumble_length].data
|
||||||
local scroll = e[perspective.dict.scroll].data
|
|
||||||
|
local player_y = e[pos3d.dict.pos].data
|
||||||
|
|
||||||
local segments, track_length = roadsegment.resetRoad(segment_path, segment_sprite_map_path, segment_length, rumble_length, scroll)
|
local segments, track_length = roadsegment.resetRoad(segment_path, segment_sprite_map_path, segment_length, rumble_length, scroll)
|
||||||
-- entityBuilder.setComponent(e, "segments", segments)
|
-- entityBuilder.setComponent(e, "segments", segments)
|
||||||
@ -73,39 +79,31 @@ function system:load()
|
|||||||
local camera_depth = projection.distanceCamToProjection(field_of_view)
|
local camera_depth = projection.distanceCamToProjection(field_of_view)
|
||||||
local player_z = camera_depth * camera_height
|
local player_z = camera_depth * camera_height
|
||||||
|
|
||||||
e.player = {}
|
e[pos3d.dict.pos].data[3] = player_z
|
||||||
e.player.pos = {0, scroll, player_z}
|
|
||||||
|
|
||||||
e.segments = segments
|
e.segments = segments
|
||||||
e.track_length = track_length
|
e.track_length = track_length
|
||||||
|
|
||||||
e.camera_depth = camera_depth
|
e.camera_depth = camera_depth
|
||||||
|
|
||||||
-- entityBuilder.setComponent(e, "camera_depth", projection.distanceCamToProjection(field_of_view))
|
|
||||||
|
|
||||||
-- local camera_depth = e.camera_depth.data
|
|
||||||
-- entityBuilder.setComponent(e, "player_z", projection.getPlayerZ(camera_height, camera_depth))
|
|
||||||
|
|
||||||
-- entityBuilder.setComponent(e, "prev_frame", 0)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function system:update(dt)
|
function system:update(dt)
|
||||||
for _, e in ipairs(self.pool) do
|
for _, e in ipairs(self.pool) do
|
||||||
if love.keyboard.isDown("up") then
|
if love.keyboard.isDown("up") then
|
||||||
e.player.pos[3] = e.player.pos[3] + 1000 * dt
|
e[pos3d.dict.pos].data[3] = e[pos3d.dict.pos].data[3] + 1000 * dt
|
||||||
elseif love.keyboard.isDown("down") then
|
elseif love.keyboard.isDown("down") then
|
||||||
e.player.pos[3] = e.player.pos[3] - 1000 * dt
|
e[pos3d.dict.pos].data[3] = e[pos3d.dict.pos].data[3] - 1000 * dt
|
||||||
end
|
end
|
||||||
if love.keyboard.isDown("left") then
|
if love.keyboard.isDown("left") then
|
||||||
e.player.pos[1] = e.player.pos[1] + 1 * dt
|
e[pos3d.dict.pos].data[1] = e[pos3d.dict.pos].data[1] - 1 * dt
|
||||||
elseif love.keyboard.isDown("right") then
|
elseif love.keyboard.isDown("right") then
|
||||||
e.player.pos[1] = e.player.pos[1] - 1 * dt
|
e[pos3d.dict.pos].data[1] = e[pos3d.dict.pos].data[1] + 1 * dt
|
||||||
end
|
end
|
||||||
if love.keyboard.isDown("w") then
|
if love.keyboard.isDown("w") then
|
||||||
e.player.pos[2] = e.player.pos[2] + 1000 * dt
|
e[pos3d.dict.pos].data[2] = e[pos3d.dict.pos].data[2] + 1000 * dt
|
||||||
elseif love.keyboard.isDown("s") then
|
elseif love.keyboard.isDown("s") then
|
||||||
e.player.pos[2] = e.player.pos[2] - 1000 * dt
|
e[pos3d.dict.pos].data[2] = e[pos3d.dict.pos].data[2] - 1000 * dt
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -222,7 +220,7 @@ end
|
|||||||
|
|
||||||
function system:draw()
|
function system:draw()
|
||||||
for _, e in ipairs(self.pool) do
|
for _, e in ipairs(self.pool) do
|
||||||
local scroll = e.player.pos[2] -- pos[2]
|
local player_y = e[pos3d.dict.pos].data[2] -- pos[2]
|
||||||
local draw_distance = e[perspective.dict.draw_distance].data
|
local draw_distance = e[perspective.dict.draw_distance].data
|
||||||
local camera_height = e[perspective.dict.camera_height].data
|
local camera_height = e[perspective.dict.camera_height].data
|
||||||
local resolution = e[perspective.dict.resolution].data
|
local resolution = e[perspective.dict.resolution].data
|
||||||
@ -231,14 +229,14 @@ function system:draw()
|
|||||||
local fogDensity = e[perspective.dict.fog_density].data
|
local fogDensity = e[perspective.dict.fog_density].data
|
||||||
|
|
||||||
local segments = e.segments
|
local segments = e.segments
|
||||||
local player_x = e.player.pos[1] -- pos[1]
|
local player_x = e[pos3d.dict.pos].data[1] -- pos[1]
|
||||||
local camera_depth = e.camera_depth
|
local camera_depth = e.camera_depth
|
||||||
local track_length = e.track_length
|
local track_length = e.track_length
|
||||||
local player_z = e.player.pos[3] -- pos[3]
|
local player_z = e[pos3d.dict.pos].data[3] -- pos[3]
|
||||||
|
|
||||||
love.graphics.push()
|
love.graphics.push()
|
||||||
drawRoad(
|
drawRoad(
|
||||||
scroll, draw_distance,
|
player_y, draw_distance,
|
||||||
segments,
|
segments,
|
||||||
segment_length, track_length,
|
segment_length, track_length,
|
||||||
player_x, camera_height, camera_depth,
|
player_x, camera_height, camera_depth,
|
||||||
@ -247,7 +245,7 @@ function system:draw()
|
|||||||
fogDensity
|
fogDensity
|
||||||
)
|
)
|
||||||
love.graphics.pop()
|
love.graphics.pop()
|
||||||
love.graphics.print(string.format("%s,%s,%s",player_x, scroll, player_z), 20, 20)
|
love.graphics.print(string.format("%s,%s,%s",player_x, player_y, player_z), 20, 20)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
local perspective = require("src.world.2_town_square.component.perspective")
|
local perspective = require("src.world.2_town_square.component.perspective")
|
||||||
|
local pos3d = require("src.world.2_town_square.component.pos3d")
|
||||||
|
|
||||||
local template = {}
|
local template = {}
|
||||||
|
|
||||||
@ -11,7 +12,7 @@ template.default_data = {
|
|||||||
fog_density = 0,
|
fog_density = 0,
|
||||||
|
|
||||||
-- player
|
-- player
|
||||||
player_x = 0,
|
pos = {0, 1, 0},
|
||||||
player_width = 50,
|
player_width = 50,
|
||||||
centrifugal = 0.3,
|
centrifugal = 0.3,
|
||||||
player_speed = 0,
|
player_speed = 0,
|
||||||
@ -27,7 +28,6 @@ template.default_data = {
|
|||||||
segment_count = 500,
|
segment_count = 500,
|
||||||
rumble_length = 3,
|
rumble_length = 3,
|
||||||
|
|
||||||
scroll = 1,
|
|
||||||
|
|
||||||
segment_path = "data/map/segment.json",
|
segment_path = "data/map/segment.json",
|
||||||
segment_sprite_map_path = "data/map/sprites.json",
|
segment_sprite_map_path = "data/map/sprites.json",
|
||||||
@ -42,11 +42,12 @@ function template.assemble(e, data)
|
|||||||
e:give(perspective.dict.resolution, data.resolution.x, data.resolution.y)
|
e:give(perspective.dict.resolution, data.resolution.x, data.resolution.y)
|
||||||
e:give(perspective.dict.road_width, data.road_width)
|
e:give(perspective.dict.road_width, data.road_width)
|
||||||
e:give(perspective.dict.rumble_length, data.rumble_length)
|
e:give(perspective.dict.rumble_length, data.rumble_length)
|
||||||
e:give(perspective.dict.scroll, data.scroll)
|
|
||||||
e:give(perspective.dict.segment_count, data.segment_count)
|
e:give(perspective.dict.segment_count, data.segment_count)
|
||||||
e:give(perspective.dict.segment_length, data.segment_length)
|
e:give(perspective.dict.segment_length, data.segment_length)
|
||||||
e:give(perspective.dict.segment_path, data.segment_path)
|
e:give(perspective.dict.segment_path, data.segment_path)
|
||||||
e:give(perspective.dict.segment_sprite_map_path, data.segment_sprite_map_path)
|
e:give(perspective.dict.segment_sprite_map_path, data.segment_sprite_map_path)
|
||||||
|
|
||||||
|
e:give(pos3d.dict.pos, data.pos[1], data.pos[2], data.pos[3])
|
||||||
end
|
end
|
||||||
|
|
||||||
return template
|
return template
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user