GameDesign 板


LINE

※ 引述《jijuan (naujij)》之铭言: : 请问假设我有一张底图的大小是4000x3000 : 那我的萤幕一开始只能显示其中的一部份 : 如果我要做出当游戏里某个物件移动的边缘时 : 画面也会跟着移动 : 请问该从哪里下手呢? 1.场上的物件应该会需要有两种座标: a. 显示於萤幕上的座标 , 用 ScreenX 还有 ScreenY来表示 b. 物件跟底图之间的关系座标,也是物件彼此之间的座标 可以称作逻辑座标, 或是世界座标,用 LogicX 和 LogicY表示。 ※ 假设萤幕大小为 640 x 480 , 萤幕范围为 ( 0 至 640 , 0 至 480 ) 座标轴最左上为 ( 0 , 0 ) 往右下数值递增。 2.然後你还需要一个镜头,镜头只需要逻辑座标, 负责利用逻辑座标差值计算所有物件应该在萤幕上出现的位置。 ==================================================================== 若是你要追踪的物件诞生在萤幕中央,且物件一开始就在底图中央。 则所追踪物件的座标: LogicX , LogicY = ( 2000 , 1500 ) //底图正中央 ScreenX ,ScreenY = 物件逻辑座标 - 镜头逻辑座标 + 画面中心(镜头中心点) = ( 2000 - 2000 + 320 , 1500 - 1500 + 240 ) = ( 320 , 240 ) // 萤幕正中央 底图的座标: LogicX , LogicY = ( 0 , 0 ) ScreenX ,ScreenY = 物件逻辑座标 - 镜头逻辑座标 + 画面中心(镜头中心点) = ( 0 - 2000 + 320 , 0 - 1500 + 240 ) = ( -1680 , -1260 ) // 底图大小为 4000 x 3000 // 萤幕中央刚好为底图中央 镜头逻辑座标 = 追踪物件一开始逻辑座标 。 状况1.一般状况: 物件往右移100像素,未到达画面移动的条件。 且底图的位置不会变,单纯物件从中央移动到右边一些。 所以物件的座标: LogicX , LogicY = ( 2000 + 100 , 1500 ) ScreenX ,ScreenY = 物件逻辑座标 - 镜头逻辑座标 + 画面中心(镜头中心点) = ( 2100 - 2000 + 320 , 1500 - 1500 + 240 ) = ( 420 , 240 ) //萤幕中央,右边100位置。 状况2.物件移动超过设定的范围: 假设在萤幕上,物件能达到最右边的位置是 ScreenX = 600 , 物件若是往右移动 300 像素, 320 + 300 > 600 。 物件萤幕位置保持 ScreenX = 600 ,底图开始左移。 程式码: 物件向右移动(){ 物件LogicX += 物件向右位移量 ; if ( 物件的LogicX > 镜头的LogicX +280 ) //600 -320 = 280 镜头LogicX += 物件向右移动的位移量 ; } // 当物件逻辑座标 跟 镜头逻辑座标 差超过 280 的时候, // 物件继续移动的位移量,镜头逻辑座标也要一起加上去。 // 例子中,镜头的座标会因为差超过 280 ,多加了 20 变为 2020 。 物件座标: LogicX , LogicY = ( 2000 + 300 , 1500 ) ScreenX ,ScreenY = 物件逻辑座标 - 镜头逻辑座标 + 画面中心(镜头中心点) = ( 2300 - 2020 + 320 , 1500 - 1500 + 240 ) = ( 600 , 240 ) //萤幕600位置。 地图座标: LogicX , LogicY = ( 0 , 0 ) ScreenX ,ScreenY = 物件逻辑座标 - 镜头逻辑座标 + 画面中心(镜头中心点) = ( 0 - 2020 + 320 , 0 - 1500 + 240 ) = ( -1700 , -1260 ) //萤幕中心,往左移动20的位置。 ======================================================================= 怎麽越打越复杂的感觉 <囧> --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.73.98.74
1F:推 jellyice:good 04/16 20:02
※ 编辑: KanoLoa 来自: 59.104.95.181 (04/16 23:04)
2F:推 jijuan:大推 04/21 09:05







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP