我想製作我的RPG遊戲的小地圖。2D自上而下的小地圖
製作小地圖就像分割所有物體的尺寸,速度和座標一樣簡單,但是你想要小地圖的大小?
例如下面...你有一個1000x1000px的大小,一個500x500px的畫布(視口),玩家位於視口的中心......如果你想要一個小地圖,它是現實世界的一半大小,你會怎麼做:
- 播放器/視口
x,y
速度/ 2 - 播放器/視口
x,y
座標/ 2 - 畫布,世界,所有對象的寬度和高度由2
等等
這樣對世界和速度的小地圖的繪製準確比例?我錯過了什麼?
謝謝!
編輯:像這樣的事情?
function miniMap() {
$(".minimapHolder").show();
$("#mini_map").text("hide minimap");
var minicanvas = document.getElementById("miniMap");
ministage = new createjs.Stage("miniMap");
minicam = new createjs.Shape();
minicam.graphics.beginStroke("white").drawRoundRect(0, 0, 100, 40, 5);
//blip representation of Player
player_blip = new createjs.Shape();
player_blip.graphics.beginFill("yellow").drawRoundRect(0, 0, 11.2, 12, 1);
animal_blip = new createjs.Shape();
animal_blip.graphics.beginFill("red").drawRoundRect(0, 0, 24.4, 21.6, 1);
player_blip.x = players_Array[0].x/5;
player_blip.y = players_Array[0].y/5;
animal_blip.x = animalContainer.x/5;
animal_blip.y = animalContainer.y/5;
minicam.x = players_Array[0].x-110;
minicam.y = players_Array[0].y-110;
ministage.addChild(player_blip, animal_blip, minicam);
ministage.update();
}
function updateMiniMap() {
player_blip.x = players_Array[0].x/5;
player_blip.y = players_Array[0].y/5;
if (ContainerOfAnimals.children[0] != null) {
var pt = ContainerOfAnimals.localToGlobal(ContainerOfAnimals.children[0].x, ContainerOfAnimals.children[0].y);
console.log(pt.x);
animal_blip.x = pt.x/5;
animal_blip.y = pt.y/5;
} else {
ministage.removeChild(animal_blip);
}
minicam.x = player_blip.x-40;
minicam.y = player_blip.y-15;
ministage.update();
}
給出:
請參閱上面的編輯...這是你的意思嗎? – Growler
是的,這看起來像一個乾淨的方法! - 我猜只有1個'animal_blib'是有意設計的,對嗎? – olsn
那麼我最終會有x個blips,所以我會修改代碼,在每次添加新對象時創建一個新的createJS對象。 – Growler