From 2681d2105f1fbd9a6a23ee1d9a011314ee04c7f3 Mon Sep 17 00:00:00 2001 From: Jonathan Hirz Date: Fri, 25 Sep 2020 09:56:21 -0700 Subject: [PATCH] basic starfield with Draw working. --- .../.luxe/entry.settings.lx.version.lx | 2 +- .luxe/.luxe.versions/game.wren.version.lx | 4 +- .luxe/luxe.build.settings.lx | 1 + game.wren | 53 ++++++------------- log.txt | 43 +++++++-------- 5 files changed, 42 insertions(+), 61 deletions(-) diff --git a/.luxe/.luxe.versions/.luxe/entry.settings.lx.version.lx b/.luxe/.luxe.versions/.luxe/entry.settings.lx.version.lx index 9afbb77..82f404f 100644 --- a/.luxe/.luxe.versions/.luxe/entry.settings.lx.version.lx +++ b/.luxe/.luxe.versions/.luxe/entry.settings.lx.version.lx @@ -1,2 +1,2 @@ -time = 1600568903 +time = 1601052740 version = 2 diff --git a/.luxe/.luxe.versions/game.wren.version.lx b/.luxe/.luxe.versions/game.wren.version.lx index f02afcb..a8853b8 100644 --- a/.luxe/.luxe.versions/game.wren.version.lx +++ b/.luxe/.luxe.versions/game.wren.version.lx @@ -17,6 +17,7 @@ methods = { create_ship = true } //game Game = { + create_starfield2 = true tick = true destroy = true lerp = true @@ -30,7 +31,8 @@ methods = { get_axis = true tick_ship = true create_ship = true + tick_starfield2 = true } //Game } //methods -time = 1600568898 +time = 1601052740 version = 1 diff --git a/.luxe/luxe.build.settings.lx b/.luxe/luxe.build.settings.lx index 4b392f5..0137b5c 100644 --- a/.luxe/luxe.build.settings.lx +++ b/.luxe/luxe.build.settings.lx @@ -1,5 +1,6 @@ settings = { shaders = [ "glsl.330" + "glsl.300.es" ] //shaders } //settings diff --git a/game.wren b/game.wren index 40c3adc..651a883 100644 --- a/game.wren +++ b/game.wren @@ -13,7 +13,6 @@ import "outline/app" for App class Game is Ready { construct ready() { - super("ready!") app = App.new() @@ -21,14 +20,17 @@ class Game is Ready { System.print("render size: %(app.width) x %(app.height) @ %(app.scale)x") // game vars + _rand = Random.new() + // camera - _camera_scale = 2 + _camera_scale = 1 _cam_offset_x = (app.width / _camera_scale) _cam_offset_y = (app.height / _camera_scale) Camera.ortho(app.camera, 0, _cam_offset_y, _cam_offset_x, 0, -5, 5) // starfield _stars = [] + _starfield_context = Draw.create(World.render_set(app.world)) // player ship _input_vec = [] @@ -44,21 +46,18 @@ class Game is Ready { create_ship() Transform.set_pos(app.camera, Transform.get_pos_x(_ship) - _cam_offset_x / 2, Transform.get_pos_y(_ship) - _cam_offset_y / 2) create_ui_text() - // redo the starfield. keep it simple, just do two images with paralax scrolling - // create_startracker() - // create_starfield() - + create_startracker() + create_starfield() + Draw.commit(_starfield_context) } //ready tick(delta) { tick_ship(delta) tick_camera(delta) - // tick_starfield(delta) - + tick_starfield(delta) if(Input.key_state_released(Key.escape)) { IO.shutdown() } - } //tick @@ -87,34 +86,13 @@ class Game is Ready { } //create_startracker create_starfield() { - // sometimes you come back to some code and don't remember exactly how it all works - // that's ok, just trust that past you figured this out, and it works how you want it to - // hopefully you can figure it out later if needed - // - // this makes the starfield background, with randomness applied to the position, size, and set_alpha - // of each star. stars are parented to _star_tracker, which follows the player around - - // put a value in the new() call to make the same starfield each time - var rng = Random.new() - var number_of_stars = 500 - - for(i in 0...number_of_stars) { - var randomness = rng.float(0.5) - var randomness_x = rng.float() - var randomness_y = rng.float() - _star = Entity.create(app.world, "star") - Transform.create(_star) - Transform.set_pos(_star, (app.width * randomness_x) - (app.width / 2), (app.height * randomness_y) - (app.height / 2), -1) - var star_mat = Assets.material("material/star") - Sprite.create(_star, star_mat, 8 * randomness, 8 * randomness) - Sprite.set_alpha(_star, randomness) - // Sprite.set_color(_star, 1, 1, 0, 1) - Transform.link(_star, _star_tracker) - _stars.add(_star) + for(i in 0...5000) { + var xpos = _rand.float() * 1000 - 500 + var ypos = _rand.float() * 1000 - 500 + Draw.quad(_starfield_context, xpos-1, ypos, -1, 3, 1, 0, [1,1,1,1]) + Draw.quad(_starfield_context, xpos, ypos-1, -1, 1, 3, 0, [1,1,1,1]) } - // debug red star - // Sprite.set_color(_stars[1], 1, 0, 0, 1) - } //create_starfield + } //create_starfield2 // UPDATERS /////////// @@ -209,15 +187,14 @@ class Game is Ready { return yaxis } } //get_axis + lerp(a, b, t) { return a + t * (b - a) } //lerp destroy() { - System.print("unready!") app.destroy() - } //destroy app { _app } diff --git a/log.txt b/log.txt index c954803..f984e09 100644 --- a/log.txt +++ b/log.txt @@ -1,4 +1,4 @@ -luxe / Engine / Sat Sep 19 19:28:23 2020 +luxe / Engine / Fri Sep 25 09:52:20 2020 luxe / Engine / path is `/Users/jonathan/Developer/luxe/space` luxe / Engine / 2020.3.0 luxe / paths / root / located at `/Users/jonathan/.luxe` @@ -13,7 +13,7 @@ luxe / dev / parcel / adding dependency `luxe` @ `2020.3.0` luxe / dev / parcel / - adding scripts from `/Users/jonathan/.luxe/modules/luxe/2020.3.0/api` luxe / dev / parcel / - adding assets from `/Users/jonathan/.luxe/modules/luxe/2020.3.0/assets` luxe / dev / images / adding unreferenced sources... -luxe / dev / parcel / entry parcel generated in 13.5598699998809ms +luxe / dev / parcel / entry parcel generated in 13.72843401622958ms luxe / dev / compiler / compiling dev content to `.luxe/` ... luxe / dev / compiler / luxe runtime `2020.3.0` at path `/Users/jonathan/.luxe/modules/luxe/2020.3.0` ... + modifier - 0 found @@ -25,14 +25,14 @@ luxe / dev / compiler / luxe runtime `2020.3.0` at path `/Users/jonathan/.luxe/m - `.luxe/entry.settings.lx` > `.luxe/.luxe/entry.settings.lx.814a19b5` + script - 109 found - parsing 1 scripts and their imports ... - - parsing `game.wren` - 23.60127ms - - parsing `random` - 0.00168ms + - parsing `game.wren` - 22.7076ms + - parsing `random` - 0.00148ms - compiling 1 scripts ... - - parsing `luxe: input` - 277.75706ms - - parsing `luxe: io` - 5.06361ms - - parsing `luxe/io` - 0.00141ms - - parsing `luxe: assets` - 44.7121ms - - compiled `game.wren` - 390.28007ms + - parsing `luxe: input` - 281.83291ms + - parsing `luxe: io` - 4.99927ms + - parsing `luxe/io` - 0.0013ms + - parsing `luxe: assets` - 45.93918ms + - compiled `game.wren` - 376.8662ms + render - 1 found + tiles - 0 found + font - 2 found @@ -46,17 +46,17 @@ luxe / dev / compiler / luxe runtime `2020.3.0` at path `/Users/jonathan/.luxe/m + mesh - 0 found + ui - 22 found luxe / dev / data compile times: - - / material / spent `2.6505ms` - - / shaders / spent `5.23208ms` - - / font / spent `3.93204ms` - - / material_basis / spent `1.32794ms` - - / settings / spent `1.0564ms` - - / script / spent `451.695ms` - - / image / spent `4.04399ms` - - / input / spent `0.9133ms` - - / render / spent `0.48048ms` - - / ui / spent `2.36533ms` -luxe / dev / compiler / compile complete | `168 assets` | `475.2279869999256ms` + - / material / spent `2.67191ms` + - / shaders / spent `5.33388ms` + - / font / spent `4.32393ms` + - / material_basis / spent `1.36295ms` + - / settings / spent `1.03035ms` + - / script / spent `438.07279ms` + - / image / spent `23.12202ms` + - / input / spent `0.54995ms` + - / render / spent `0.64896ms` + - / ui / spent `2.51099ms` +luxe / dev / compiler / compile complete | `168 assets` | `481.1434459988959ms` luxe / project / info: - name: `space` - version: `0.0.1` @@ -143,10 +143,11 @@ luxe / assets / loading `entry parcel` ... luxe / assets / loading / ui `luxe: ui/editor.panel.progress` luxe / assets / loading / ui `luxe: ui/editor.panel.slider` luxe / assets / loading / ui `luxe: ui/editor.panel.text` -luxe / assets / loaded `entry parcel` with `66 items` in `32.81679399970017ms` +luxe / assets / loaded `entry parcel` with `66 items` in `27.47206698404625ms` luxe / runtime / setting log level `info` luxe / assets / input / loading entry input `outline/inputs` luxe / render / init renderer script `outline/renderer` game / render / init / ok ready! render size: 960 x 640 @ 1x +unready!