![]() |
Attention | Topic was automatically imported from the old Question2Answer platform. |
![]() |
Asked By | 9BitStrider |
using System;
using Godot;
using Dictionary = Godot.Collections.Dictionary;
using Array = Godot.Collections.Array;
public class global_vars : Node
{
onready var viewport = GetViewport();
onready Vector2 gameSize = new Vector2(
ProjectSettings.GetSetting("display/window/size/width"),
ProjectSettings.GetSetting("display/window/size/height"));
public Vector2 gameRes = new Vector2(256, 240);
//Scale type for the game window.
//0: Integer Height - 10:9
//1: Integer Height - 4:3
public int scaleType = 1;
public void _Ready()
{
viewport.Connect("size_changed", this, "resize_viewport");
ResizeViewport();
}
public void ResizeViewport()
{
var newSize = OS.GetScreenSize();
var scaleFactor;
if(newSize.x < gameSize.x)
{
scaleFactor = newSize.x / gameSize.x;
newSize = new Vector2(gameSize.x * scaleFactor, gameSize.y * scaleFactor);
}
if(newSize.y < gameSize.y)
{
scaleFactor = newSize.y / gameSize.y;
newSize = new Vector2(gameSize.x * scaleFactor, gameSize.y * scaleFactor);
}
OS.SetWindowSize(newSize);
OS.CenterWindow();
viewport.SetSizeOverride(true, newSize);
}
}
Very new to using Mono and C# so bear with me. I’m trying to port my current screen rescaling script to C# but I’m not having any luck. I can get the rest of the code to work, but I can’t get the right syntax for the onready function. Here’s the original code:
extends Node
onready var viewport = get_viewport()
onready var game_size = Vector2(
ProjectSettings.get_setting("display/window/size/width"),
ProjectSettings.get_setting("display/window/size/height"))
var game_res = Vector2(256, 240)
#Scale type for the game window.
#0: Integer Height - 10:9
#1: Integer Height - 4:3
var scale_type = 1
func _ready():
viewport.connect("size_changed", self, "resize_viewport")
resize_viewport()
func resize_viewport():
var new_size = OS.get_screen_size()
var scale_factor
if new_size.x < game_size.x:
scale_factor = new_size.x / game_size.x
new_size = Vector2(game_size.x * scale_factor, game_size.y * scale_factor)
if new_size.y < game_size.y:
scale_factor = new_size.y / game_size.y
new_size = Vector2(game_size.x * scale_factor, game_size.y * scale_factor)
OS.set_window_size(new_size)
OS.center_window()
viewport.set_size_override(true, new_size)
The error I get is as follows in Visual Studio Code. Yes, I have the 3 needed extensions installed.:
The type or namespace name 'onready' could not be found (are you missing a using directive or an assembly reference?)
9BitStrider | 2021-06-30 21:40