怎么实现游戏中的小地图。arpg的小地图求大神指教
1赞
你会实现大地图吗?把大地图缩小放右上角就可以了。
1赞
用一个摄像机,使用那个什么renertarget渲染到纹理,然后放在屏幕上就行。
摄像机可以设置mask,然后再每个单位上挂一个用于小地图显示的图标之类的。把这个图标的mask和摄像机设置成相同的。
1赞
具体怎么实现呢 教教我大神。我的qq312449401
function GameCamera:InitMiniMapCamera(layer3D)
if self.m_miniMapCamera == nil then
self.m_miniMapCamera = cc.Camera:createOrthographic(GameCamera.MiniMapCameraSize,GameCamera.MiniMapCameraSize,1,10000)
self.m_miniMapCamera:setCameraFlag(cc.CameraFlag.USER2)
self.m_miniMapCamera:setPosition3D(GameCamera.MiniMapDistance)
self.m_miniMapCamera:setRotation3D(cc.vec3(-90, 180, 0))
layer3D:addChild(self.m_miniMapCamera, 2)
end
local fbo = ccexp.FrameBuffer:create(1, GameCamera.MiniMapSize, GameCamera.MiniMapSize);
local rt = ccexp.RenderTarget:create(GameCamera.MiniMapSize, GameCamera.MiniMapSize);
fbo:attachRenderTarget(rt);
self.m_miniMapCamera:setFrameBufferObject(fbo);
self.m_miniMapFbo = fbo
end
function GameCamera:GetMiniMap()
if self.m_miniMapFbo ~= nil then
return self.m_miniMapFbo:getRenderTarget():getTexture()
end
return nil
end
以上是创建小地图的纹理,下面就是小地图的ui显示
local miniMap = worldCamera:GetMiniMap()
if miniMap ~= nil then
self.m_SpriteMiniMap:setTexture(miniMap)
self.m_SpriteMiniMap:setTextureRect(cc.size(200,200))
self.m_SpriteMiniMap:setVisible(true)
end
然后是需要显示在小地图的精灵
sprite:setCameraMask(cc.CameraFlag.USER2)
代码大概就这样,有一些变量 是在其他地方定义的,对整体实现影响不大,相信你能搞定。
1赞
对了。。 我这个是cocos2d-lua的实现。
所以只能是提供个思路。
感谢大神
creator能做到吗?
??????????