Compare commits

..

2 commits

Author SHA1 Message Date
Jonathan Hirz
2681d2105f basic starfield with Draw working. 2020-09-25 09:56:21 -07:00
Jonathan Hirz
4cfa77f63e time to redo starfield 2020-09-19 21:39:56 -07:00
4 changed files with 38 additions and 58 deletions

View file

@ -1,2 +1,2 @@
time = 1600562055
time = 1601052740
version = 2

View file

@ -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 = 1600562055
time = 1601052740
version = 1

View file

@ -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 = []
@ -46,18 +48,16 @@ class Game is Ready {
create_ui_text()
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
@ -86,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 = 50
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
///////////
@ -208,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 }

42
log.txt
View file

@ -1,4 +1,4 @@
luxe / Engine / Sat Sep 19 17:34:15 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 14.66805406380445ms
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` - 24.07203ms
- parsing `random` - 0.00157ms
- parsing `game.wren` - 22.7076ms
- parsing `random` - 0.00148ms
- compiling 1 scripts ...
- parsing `luxe: input` - 287.08386ms
- parsing `luxe: io` - 5.22745ms
- parsing `luxe/io` - 0.00143ms
- parsing `luxe: assets` - 46.46948ms
- compiled `game.wren` - 403.50771ms
- 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.75239ms`
- / shaders / spent `5.65618ms`
- / font / spent `4.29496ms`
- / material_basis / spent `1.50831ms`
- / settings / spent `1.07576ms`
- / script / spent `467.68876ms`
- / image / spent `4.69363ms`
- / input / spent `0.89061ms`
- / render / spent `0.52276ms`
- / ui / spent `2.85538ms`
luxe / dev / compiler / compile complete | `168 assets` | `493.5020689154044ms`
- / 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,7 +143,7 @@ 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 `28.38667493779212ms`
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`