stars loop
This commit is contained in:
parent
a82c18ad34
commit
376331fe37
1 changed files with 26 additions and 12 deletions
38
game.wren
38
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)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue