diff --git a/game.wren b/game.wren index 9f5e386..809e07f 100644 --- a/game.wren +++ b/game.wren @@ -23,9 +23,10 @@ class game is Game { // game vars // camera _camera_scale = 1 + _cam_offset_x = (app.width / 2 / _camera_scale) + _cam_offset_y = (app.height / 2 / _camera_scale) // starfield - _star_scale = 2 _stars = [] // player ship @@ -44,7 +45,7 @@ class game is Game { create_asteroid(5, 10) create_startracker() draw_starfield() - Transform.set_pos(app.camera, Transform.get_pos_x(_ship) - (app.width / 2 / _camera_scale), Transform.get_pos_y(_ship) - (app.height / 2 / _camera_scale)) + Transform.set_pos(app.camera, Transform.get_pos_x(_ship) - _cam_offset_x, Transform.get_pos_y(_ship) - _cam_offset_y) // NOTES // z-layers: -1 stars, 0 player ship @@ -101,21 +102,22 @@ class game is Game { var rng = Random.new() var number_of_stars = 1000 - var star_spread = 1000 for(i in 0...number_of_stars) { - var randomness = rng.float() + 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, (star_spread * randomness_x) - (star_spread / 2), (star_spread * randomness_y) - (star_spread / 2), -1) + 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 * 0.8) + Sprite.set_alpha(_star, randomness) Transform.link(_star, _star_tracker) _stars.add(_star) } + // debug red star + // Sprite.set_color(_stars[1], 1, 0, 0, 1) } ////////////// @@ -154,22 +156,34 @@ class game is Game { var camerax = Transform.get_pos_x(app.camera) var cameray = Transform.get_pos_y(app.camera) var interpolation = 0.8 - var camera_interp_x = lerp(shipx - (app.width / 2 / _camera_scale), camerax, interpolation) - var camera_interp_y = lerp(shipy - (app.height / 2 / _camera_scale), cameray, interpolation) + var camera_interp_x = lerp(shipx - _cam_offset_x, camerax, interpolation) + var camera_interp_y = lerp(shipy - _cam_offset_y, cameray, interpolation) Transform.set_pos(app.camera, camera_interp_x, camera_interp_y) } //tick_camera tick_starfield(delta) { - Transform.set_pos(_star_tracker, Transform.get_pos_x(app.camera), Transform.get_pos_y(app.camera), -1) + Transform.set_pos(_star_tracker, Transform.get_pos_x(app.camera) + _cam_offset_x, Transform.get_pos_y(app.camera) + _cam_offset_y, -1) + // loop through stars[] for(star in _stars) { Transform.set_pos_x(star, Transform.get_pos_x(star) + -_ship_velocity_x * (Sprite.get_alpha(star) * 0.5)) Transform.set_pos_y(star, Transform.get_pos_y(star) + -_ship_velocity_y * (Sprite.get_alpha(star) * 0.5)) - //x - if(Transform.get_pos_x(star) > Transform.get_pos_x(_star_tracker) + (app.width / 2 / _camera_scale)) { - // Transform.set_pos_x(star, Transform.get_pos_x(_star_tracker) - (app.width / 2 / _camera_scale)) + // x pos reset + if(Transform.get_pos_x(star) > _cam_offset_x * _camera_scale) { + Transform.set_pos_x(star, -_cam_offset_x * _camera_scale) + } + if(Transform.get_pos_x(star) < -_cam_offset_x * _camera_scale) { + Transform.set_pos_x(star, _cam_offset_x * _camera_scale) + } + + // y pos reset + if(Transform.get_pos_y(star) > _cam_offset_y * _camera_scale) { + Transform.set_pos_y(star, -_cam_offset_y * _camera_scale) + } + if(Transform.get_pos_y(star) < -_cam_offset_y * _camera_scale) { + Transform.set_pos_y(star, _cam_offset_y * _camera_scale) } }