This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/OMAP-L138:在CCS中修改C代码内的GUI Composer参数

Guru**** 2558250 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/587049/ccs-omap-l138-modifying-gui-composer-parameters-within-c-code-in-ccs

部件号:OMAP-L138

工具/软件:Code Composer Studio

您好,

我正在尝试将GUI Composer用作使用LCDK板创建的语音控制象棋游戏的GUI。 基本上,我希望能够在我的C代码内修改GUI编辑器中导入图像的位置“左”和“顶部”参数(布局),以表示在主板上移动棋子的动作。 我可以通过修改GUI Composer的“设计”窗格中的值或更改源代码,在GUI Composer中轻松完成此操作,但我希望能够在游戏过程中以编程方式(在C代码中)完成此操作。

我希望这种描述足以使我的问题能够理解。

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Benjamin:

    很高兴看到您正在尝试最大限度地利用GUI Composer。 您可能需要考虑联机使用GUI Composer v2,您的应用程序可以联机托管并与Gallery中的其他人共享。 但是,GUI Composer v2目前不支持您的设备。

    好的,回到回答您的问题。 您可以创建与目标变量的GUI VAR绑定,并在onPropertyChanged处理程序中更改CSS样式。

    以下是GUI VAR及其相应JS代码的示例,myWidget是屏幕截图中的红色图像。  

    祝您项目顺利!

    此致,
    Patrick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Patrick,

    非常感谢您的回复! 不幸的是,我不是很精通JavaScript,所以我在理解您作为响应提供的代码的复杂性时遇到了一些困难。 如果您能够澄清如何使用它,那将是非常感谢的! 另外,出于我的目的,由于我想能够修改每一个棋盘上的x,y位置,我需要为每一个棋盘都有一个xpos和ypos (带有相应的JS函数)?

    此外,我的主要问题是,鉴于JS代码中的这种实现,这如何与我的C代码(所有游戏逻辑都存在的地方)配合使用? 即,这两个(C和JS)之间是否有一个可在C代码中更改的共享变量,这将更新JS? 如果是,您能否简单地给我一个示例,说明如何在C代码中使用此变量?

    再次感谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    编辑:我想我明白了! 我只需要在C代码中将'xpos'和'ypos'声明为全局,然后像往常一样更改它们的值。 所以我仍然认为我需要一对xpos/ypos来处理每一个游戏片段。

    非常感谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可以为每个游戏片段优化字符串的绑定,而不是xpos/ypos,即"Bqueen,xpos,ypos"。 "WKnight,xpos,ypos",然后使用JS解析三个字符串段并执行CSS样式更改。 BQueen,WKnight是您的作品在GC中的小部件名称,xpos和ypos是CSS位置偏移的编号。

    此致,
    Patrick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    明白了!

    我还尝试将'visible'参数绑定到我的C代码,以便将其打开。 从xpos和ypos的实现中汲取灵感,我尝试了类似的东西(在我的JS代码中):

    函数onVisible_rook_black_1PropertyChanged (propertyName,newValue,oldValue){

    var myWidget = dijit.byId ("rook_black_1");
    Dojo.style("rook_black_1","visible",newValue);

    }

    我还尝试根据在线发现的内容将"可见"更改为"可见性",但这也不起作用。 另外,由于我在使用C,所以我不得不将char数组用作字符串--我已经包括了<string.h>,所以我可以使用strcpy来更改字符串。

    '可见'是'样式'的一部分吗? 我查看了GUI窗口的html源代码,它似乎是独立的,所以我是否执行类似"dojo.visible(....)?"的操作?

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尝试此操作,将IF语句更改为您的需要:

    如果(newValue){
    Dojo.style("rook_black_1","display","");
    }其他{
    Dojo.style("rook_black_1","display","none");
    } 

    实际上,您可以删除var myWidget行。 我的示例代码中有它,但我在将它发送给您之前忘记将它删除了。

    此致,
    Patrick