private void remove_invisible_img(background_layer layer) { for (int i = layer.img_map.Count - 1; i >= 0; i--) { var element = layer.img_map.ElementAt(i); if (!is_img_visible(element.Value)) { layer.img_map.Remove(element.Key); Destroy(element.Value); } } }
private void add_new_img(background_layer layer) { Vector2 position_miu = get_position_miu(layer.speed_rate, layer.set); float visible_x_left = transform.position.x - (screen_width / 64.0f + img_x) / 2; float visible_x_right = visible_x_left + (screen_width / 64.0f + img_x); float visible_y_down = transform.position.y - (screen_height / 64.0f + img_y) / 2; float visible_y_up = visible_y_down + (screen_height / 64.0f + img_y); int x_low = (int)((visible_x_left - position_miu.x) / img_x); int x_high = (int)((visible_x_right - position_miu.x) / img_x); int y_low = (int)((visible_y_down - position_miu.y) / img_y); int y_high = (int)((visible_y_up - position_miu.y) / img_y); for (int i = x_low; i <= x_high; i++) { for (int j = y_low; j <= y_high; j++) { string key = i + "_" + j; if (!layer.img_map.ContainsKey(key)) { GameObject obj = Instantiate((layer.is_light ? image_obj_light : image_obj)) as GameObject; obj.transform.parent = layer.layer_obj.transform; obj.transform.localPosition = new Vector3(i * img_x, j * img_y, 0); if (j == 0) { if (layer.set.imgs[0] != null) { obj.GetComponent <SpriteRenderer>().sprite = layer.set.imgs[0]; } } else if (j > 0) { if (layer.set.imgs[1] != null) { obj.GetComponent <SpriteRenderer>().sprite = layer.set.imgs[1]; } } else { if (layer.set.imgs[2] != null) { obj.GetComponent <SpriteRenderer>().sprite = layer.set.imgs[2]; } } layer.img_map[key] = obj; } } } }
private void move_img(background_layer layer) { Vector2 position_miu = get_position_miu(layer.speed_rate, layer.set); layer.layer_obj.transform.position = new Vector3(position_miu.x + layer.set.position_x, position_miu.y + layer.set.position_y, layer.layer_obj.transform.position.z); // foreach (string key in layer.img_map.Keys) // { // string[] index = key.Split('_'); // int index_x = int.Parse(index[0]); // int index_y = int.Parse(index[1]); // layer.img_map[key].transform.parent.position = new Vector3(index_x * img_x + position_miu.x, index_y * img_y + position_miu.y, layer.img_map[key].transform.parent.position.z); // adjust_pixel(layer.img_map[key]); // } }
void Start() { player = GameObject.Find("hero").GetComponent <player>(); target = player.transform.Find("sprite").gameObject; ui_group1 = GameObject.Find("ui_group1"); ui_group2 = GameObject.Find("ui_group2"); ui_group3 = GameObject.Find("ui_group3"); loading = GameObject.Find("loading"); ui_group3_renderer_1 = ui_group3.transform.Find("ui_group3_1").gameObject; ui_group3_renderer_2 = ui_group3.transform.Find("ui_group3_2").gameObject; layer1 = GameObject.Find("layer1"); layer2 = GameObject.Find("layer2"); layer3 = GameObject.Find("layer3"); layer4 = GameObject.Find("layer4"); if (layer1 != null) { background_layer background_layer = new background_layer(); background_layer.layer_obj = layer1; background_layer.set = layer1.GetComponent <background_set>(); background_layer.speed_rate = 1.0f; background_layer.is_light = false; background_layer.pixel_basic = target; background_layer.move_per_pixel = 10; layers.Add(background_layer); } if (layer2 != null) { background_layer background_layer = new background_layer(); background_layer.layer_obj = layer2; background_layer.set = layer2.GetComponent <background_set>(); background_layer.speed_rate = 0.953125f; background_layer.is_light = false; background_layer.pixel_basic = layer1; background_layer.move_per_pixel = 8; layers.Add(background_layer); } if (layer3 != null) { background_layer background_layer = new background_layer(); background_layer.layer_obj = layer3; background_layer.set = layer3.GetComponent <background_set>(); background_layer.speed_rate = 0.5f; background_layer.is_light = true; background_layer.pixel_basic = layer2; background_layer.move_per_pixel = 5; layers.Add(background_layer); background_layer.move_per_pixel = 5; } if (layer4 != null) { background_layer background_layer = new background_layer(); background_layer.layer_obj = layer4; background_layer.set = layer4.GetComponent <background_set>(); background_layer.speed_rate = 0.296875f; background_layer.is_light = true; background_layer.pixel_basic = layer3; layers.Add(background_layer); background_layer.move_per_pixel = 3; } background_mask = GameObject.Find("background_mask"); image_obj = Resources.Load("img_obj") as GameObject; image_obj_light = Resources.Load("img_obj_light") as GameObject; refresh_screen_size(); transform.position = new Vector3(target.transform.position.x, target.transform.position.y, transform.position.z); switch (kind_of_map) { case 1: map_size_x = 4.5f; map_size_y = 0f; break; case 2: map_size_x = 31; map_size_y = 15; break; case 3: map_size_x = 15; map_size_y = 23; break; } map_size_x -= (int)(screen_width * 1.0f / reletive_rate / 2) / 64.0f; map_size_y -= (int)(screen_height * 1.0f / reletive_rate / 2) / 64.0f; }