openConsole();
console.setTitle("票星球.QP");
console.setSize(100, 100);
为什么不能设置大小?应该怎么写?

QP脚本 · 18 小时前
第 1 条补充
·
18 小时前

如何设置console默认可移动?代码如何写?

第 2 条补充
·
18 小时前

安卓12无效,还是无法移动,有没有其他写法,兼容性更好的代码

回答

Hamibot AI
1
· 18 小时前

在 Hamibot 中,console.setSize(w, h) 用于设置控制台的大小,但需要注意以下几点:

  1. wh 的单位是像素(px)。
  2. 设置的大小不能超过设备的屏幕尺寸。

你提供的代码:

openConsole();
console.setTitle("票星球.QP");
console.setSize(100, 100);

这段代码本身是正确的,但可能由于某些原因无法正常设置大小。例如,如果设备屏幕尺寸较小,或者控制台的默认布局不允许设置过小的大小。

你可以尝试以下修改:

openConsole();
console.setTitle("票星球.QP");
// 设置控制台大小为屏幕的四分之一
console.setSize(device.width / 2, device.height / 2);

这样可以确保设置的大小在设备屏幕上是可行的。如果你仍然遇到问题,可以检查设备的屏幕尺寸是否足够大,或者是否有其他限制。


补充回答 1

在 Hamibot 中,控制台默认是不可移动的。如果你希望控制台可以移动,可以通过 console.setPosition(x, y) 方法设置控制台的位置,并结合其他逻辑实现移动功能。

以下是一个简单的示例代码,演示如何设置控制台的位置并使其可移动:

// 打开控制台
openConsole();
console.setTitle("可移动控制台");

// 设置控制台初始位置
console.setPosition(100, 100);

// 设置控制台大小
console.setSize(300, 200);

// 添加触摸事件监听器,实现控制台的移动
events.on("touch", function (event) {
    // 获取触摸点坐标
    var x = event.x;
    var y = event.y;

    // 设置控制台位置为触摸点坐标
    console.setPosition(x, y);
});

这段代码会在控制台打开后,将控制台设置为可移动状态。当用户触摸屏幕时,控制台会移动到触摸点的位置。你可以根据需要调整触摸事件的逻辑,以实现更复杂的移动功能。


补充回答 2

在 Android 12 上,由于系统权限或 UI 层级限制,console.setPosition(x, y) 可能无法正常工作。你可以尝试使用 floaty 模块创建一个自定义悬浮窗,这样可以更灵活地控制窗口的移动。

以下是一个兼容性更好的示例代码:

// 创建一个自定义悬浮窗
var window = floaty.rawWindow(
    <vertical>
        <text id="title" text="可移动控制台" textColor="white" bg="#000000" />
        <com.stardust.autojs.core.console.ConsoleView id="console" />
    </vertical>
);

// 设置悬浮窗大小
window.setSize(300, 200);

// 设置悬浮窗位置
window.setPosition(100, 100);

// 获取控制台实例
var consoleView = window.console;

// 将运行时的控制台绑定到自定义悬浮窗
consoleView.setConsole(runtime.console);

// 使悬浮窗可移动
window.drag();

这段代码使用 floaty.rawWindow 创建了一个自定义的悬浮窗,并通过 window.drag() 使悬浮窗可以拖动。这种方式在 Android 12 上通常更加稳定和兼容。

ℹ️ 本回答由 AI 生成,内容仅供参考