मेरे पास 3 डी स्पेस में व्यवस्थित बहुत सारे sprites हैं, और उनके मूल कंटेनर में घूर्णन लागू होते हैं। मैं स्प्राइट्स 3 डी रोटेशन को कैसे उलट सकता हूं, कि वे हमेशा कैमरे (एक्शनस्क्रिप्ट 3) का सामना करते हैं?ऑब्जेक्ट को हमेशा कैमरे का सामना करने के लिए 3 डी में घुमावदार घुमावदार?
यहाँ एक कोड यह परीक्षण करने के लिए:
package{
import flash.display.Sprite;
import flash.events.Event;
public class test extends Sprite{
var canvas:Sprite = new Sprite();
var sprites:Array = []
public function test(){
addChild(canvas)
for (var i:int=0;i<20;i++){
var sp:Sprite = new Sprite();
canvas.addChild(sp);
sp.graphics.beginFill(0xFF0000);
sp.graphics.drawCircle(0,0,4);
sp.x = Math.random()*400-200;
sp.y = Math.random()*400-200;
sp.z = Math.random()*400-200;
sprites.push(sp);
}
addEventListener(Event.ENTER_FRAME,function():void{
canvas.rotationX++;
canvas.rotationY = canvas.rotationY+Math.random()*2;
canvas.rotationZ++;
for (var i:int=0;i<20;i++){
//this is not working...
sprites[i].rotationX = -canvas.rotationX
sprites[i].rotationY = -canvas.rotationY
sprites[i].rotationZ = -canvas.rotationZ
}
})
}
}
}
मैं मैं स्प्राइट की rotation3D मैट्रिक्स के साथ कुछ जादू करने के लिए अनुमान लगा रहा है ... मैं इस स्क्रिप्ट को लागू करने की कोशिश की है: http://ughzoid.wordpress.com/2011/02/03/papervision3d-sprite3d/, लेकिन इतनी सफलता मिली
मदद के लिए धन्यवाद। इस किया जा रहा है एक सुझाव है, एक समाधान के लिए पहले से
ठीक है, सवाल है: कैसे आप "वैश्विक" मैट्रिक्स किसी विशेष वस्तु के लिए मिलता है, यह हेरफेर के रूप में आप का वर्णन है, फिर इसे वापस इस स्प्राइट के लिए सेट ??? AFAIK, आप किसी ऑब्जेक्ट में "वैश्विक" रूपांतरण मैट्रिक्स सेट नहीं कर सकते हैं, केवल एक "स्थानीय" एक! क्या "pointAt" Matrix3D विधि इस समस्या को हल कर सकती है? –
@ बिलकॉट्सियास: आपके दृश्य में ऑब्जेक्ट्स के रूपांतरण मैट्रिक्स को ट्रैक करना आपकी ज़िम्मेदारी है। आपके पास आमतौर पर कुछ प्रकार का परिवर्तन पदानुक्रम होता है: 'देखें · t_1 · t_2 · t_3 ... '। यह आपका "वैश्विक" परिवर्तन मैट्रिक्स है। अब यदि आप इस परिवर्तन श्रृंखला में कुछ ऑब्जेक्ट खींचना चाहते हैं, लेकिन इसे कैमरे का सामना करना चाहते हैं, तो आप उस कंपाउंड मैट्रिक्स को लेते हैं और जिस तरह से मैंने वर्णन किया है उसे बदल दें। प्रभावी रूप से यह ऑब्जेक्ट को सीधे "कैमरे" से दूर किए बिना दृश्य में सही जगह पर अनुवाद करता है। – datenwolf
मुझे यह बिल्कुल समझ में नहीं आता है। यह केवल वस्तु को स्केल करेगा और इसे कैमरे से कुछ दूरी दूर ले जाएगा, लेकिन यह विमान को "उन्मुख" नहीं करेगा, इसलिए यह कैमरे का सामना करेगा (यह कैमरे की ओर उन्मुख है क्योंकि विमान के सामान्य में एक रेखा के समानांतर है कैमरे की उत्पत्ति से विमान के केंद्र तक)। – user18490