V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ChineseCabbage
V2EX  ›  程序员

请教大家一个微信小游戏 SDK 的问题

  •  
  •   ChineseCabbage · 2023-04-17 17:32:59 +08:00 · 1072 次点击
    这是一个创建于 605 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景:工种是前端,没有游戏方面的开发经验

    最近接到一个需求:要求开发一个微信小游戏的 SDK ,别人引入之后在他的小游戏上面生成(或者说创建)一个图片的挂件;

    遇到的问题: 1 、我原本的思路是通过传入 canvas 的上下文初始化我的类,然后我这边去创建这个图片挂件并渲染在游戏中,但是这样需要使用这个 SKD 的一方在为我这个 SDK 写上不少逻辑,同时也跟其他公司的技术人员沟通,他们对接别人的这种类似的 SDK 都是直接 require 进去就能使用了,所以我怀疑我思路的方向是不正确的;

    2 、第二种方式我采用了用 LayaAir 去生成的小游戏实例(因为有些合作公司是使用 laya 开发的),再同样使用原生的方式去创建挂件,但是我无法获取到 canvas 实例的上下文,导致无法顺利创建挂件,同时如果使用 createCanvas 去创建画布,界面就只剩下我这个挂件图片,游戏内容全部抹除;

    目前来说我对于实现这个需求还是没有太好思路,也付费去咨询解决方案,但是最后提供的 demo 无法使用,希望各位老哥能帮助提供一下思路,万分感谢。

    8 条回复    2023-04-20 11:29:15 +08:00
    krapnik
        1
    krapnik  
       2023-04-17 17:47:54 +08:00
    提供一个 sdk ,直接 require 进去,sdk 的内容主要为:判断游戏引擎,动态创建 spritem ,将图片挂件添加到场景树上去[比如 laya 的话,就 addChild 到 Laya.stage 上面去],覆盖一下常用的游戏引擎 [CCC,LAYA,EGRET,PIXI,UNITY 等等]
    ChineseCabbage
        2
    ChineseCabbage  
    OP
       2023-04-17 18:03:18 +08:00
    @krapnik 谢谢大佬,我按照这个思路去尝试一下,因为我之前的思路都是从原生 js 出发去创建的;
    能否再帮我解惑一下,像你这边所说的这种思路是否有一些使用原生写的小游戏不适用呢
    krapnik
        3
    krapnik  
       2023-04-17 18:10:39 +08:00
    是的,在游戏中,带有图形可视化实体的 sdk 都得去适配,因为每个游戏引擎定义的图形可视化实体都不统一,有的喜欢 sprite ,有的喜欢 displayobject ,所以你必须要用游戏环境去创建你的图片挂件。而且你写好了这个 sdk ,不用需要在微信小游戏环境中,web 也是可以测试到的,因为游戏引擎帮你抹平了平台环境的差异。
    stardew
        4
    stardew  
       2023-04-17 18:11:39 +08:00
    能不能 webview 直接创建一个图片放在最上层,就是个 img 元素,我们之前项目是 cocos creator,有个 sdk 就是这样的,require 时创建并且绑定回调
    krapnik
        5
    krapnik  
       2023-04-17 18:14:58 +08:00
    @stardew #4 先不说界面适配问题,数据通信上就麻烦了,而且小游戏环境好像是没有 webview 的
    stardew
        6
    stardew  
       2023-04-17 18:17:17 +08:00
    @krapnik 好吧,好久没接触小游戏了,忘记了...
    ChineseCabbage
        7
    ChineseCabbage  
    OP
       2023-04-20 11:28:48 +08:00
    @stardew 谢谢老哥能花时间给我的问题提出见解跟思路
    ChineseCabbage
        8
    ChineseCabbage  
    OP
       2023-04-20 11:29:15 +08:00
    @krapnik 感恩老哥,给我指明了思路,已实现功能了,感谢感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2782 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:26 · PVG 21:26 · LAX 05:26 · JFK 08:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.