stars loop

This commit is contained in:
Jonathan Hirz 2019-02-02 19:33:50 -08:00
parent a82c18ad34
commit 376331fe37

View file

@ -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)
}
}