扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 94|回复: 0

[转载发布] 每天一点技术小文章(1)

[复制链接]
累计送礼:
0 个
累计收礼:
0 个
  • TA的每日心情
    开心
    前天 09:21
  • 签到天数: 153 天

    连续签到: 1 天

    [LV.7]常住居民III

    2419

    主题

    479

    回帖

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    6
    卡币
    12674
    OK点
    16
    推广点
    0
    同能卷
    0
    积分
    15600

    灌水之王

    发表于 昨天 16:44 | 显示全部楼层 |阅读模式
    这个系列主要是给大家讲解一下游戏的一些相关代码。
    今天主要是讲解数据库中,角色头像如何映射到菜单界面的头像。




    其核心的实现代码在 rmmz_windows.js这个文件
    代码
    1. Window_Base.prototype.drawFace = function(
    2.     faceName, faceIndex, x, y, width, height
    3. ) {
    4.     width = width || ImageManager.faceWidth;
    5.     height = height || ImageManager.faceHeight;
    6.     const bitmap = ImageManager.loadFace(faceName);
    7.     const pw = ImageManager.faceWidth;
    8.     const ph = ImageManager.faceHeight;
    9.     const sw = Math.min(width, pw);
    10.     const sh = Math.min(height, ph);
    11.     const dx = Math.floor(x + Math.max(width - pw, 0) / 2);
    12.     const dy = Math.floor(y + Math.max(height - ph, 0) / 2);
    13.     const sx = Math.floor((faceIndex % 4) * pw + (pw - sw) / 2);
    14.     const sy = Math.floor(Math.floor(faceIndex / 4) * ph + (ph - sh) / 2);
    15.     this.contents.blt(bitmap, sx, sy, sw, sh, dx, dy);
    16. };
    复制代码


    在这个代码里,主要要关注的是    const bitmap = ImageManager.loadFace(faceName); 这里是导入图片到bitmap 大家可以在这里去console.log(faceName)会发现这个faceName其实是图片名。
    然后因为我们mz格式的图片一般是一整张图片,然后我们去选择做切割,那么这里就通过 const sx = Math.floor((faceIndex % 4) * pw + (pw - sw) / 2);
        const sy = Math.floor(Math.floor(faceIndex / 4) * ph + (ph - sh) / 2); 去确定我们选的是哪张图片,其实就是通过faceIndex去计算,用户选择的那块头像在整块图片的x,y,然后由于每个图像的宽度高度都一致,所以再加上pw、ph,就可以获取那一块图片。
    然后通过this.contents.blt去绘制,bitmap是图片,sx,sy是头像的方位,sw,sh是长度宽度,dx,dy是这个头像显示的方位。
    有什么不懂的欢迎交流。


                本帖来自P1论坛作者akazz,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=497625  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2025-6-29 06:27 , Processed in 0.136783 second(s), 54 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表