Back to Question Center
0

Three.js, React ਅਤੇ WebGL ਨਾਲ ਇੱਕ ਖੇਡ ਬਣਾਉਣਾ            Three.js, ਰੀਐਕਟ ਅਤੇ ਵੈਬਜੀਐਲ ਨਾਲ ਇੱਕ ਗੇਮ ਬਣਾਉਣਾ ਰਿਲੀਲੇਟਡ ਮੀਲਟ: ES6Node.jsjQuerynpmAjax ਹੋਰ ... ਪ੍ਰਾਯੋਜਕ

1 answers:
ਤਿੰਨ ਨਾਲ ਇੱਕ ਗੇਮ ਬਣਾਉਣਾ. ਜੇ ਐਸ, ਰੀਐਕਟ ਅਤੇ ਵੈਬਜੀਐਲ

ਰੀਐਕਟੇਸ਼ਨ ਦੀ ਉੱਚ-ਗੁਣਵੱਤਾ, ਡੂੰਘਾਈ ਨਾਲ ਜਾਣ ਪਛਾਣ ਲਈ, ਤੁਸੀਂ ਕੈਨੇਡਾ ਦੇ ਪੂਰੇ ਸਟੈਕ ਡਿਵੈਲਪਰ ਵੇਸ ਬੋਸ ਤੋਂ ਪਹਿਲਾਂ ਨਹੀਂ ਜਾ ਸਕਦੇ. ਇੱਥੇ ਆਪਣੇ ਕੋਰਸ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ, ਅਤੇ ਕੋਡ SITEPOINT ਨੂੰ 25% ਬੰਦ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਅਤੇ ਸਾਈਟਪੌਰਟ ਦੀ ਸਹਾਇਤਾ ਕਰਨ ਲਈ ਸਹਾਇਤਾ ਦੀ ਵਰਤੋਂ ਕਰੋ - saratoga ca rentals.

ਮੈਂ ਇਕ ਖੇਡ ਬਣਾ ਰਿਹਾ ਹਾਂ ਜਿਸਦਾ ਸਿਰਲੇਖ ਹੈ "ਕ੍ਰਿਸ਼ਮਾ ਦ ਚੈਮਲੀਅਨ" "ਇਹ ਤਿੰਨ ਨਾਲ ਬਣਾਇਆ ਗਿਆ ਹੈ ਜੇ ਐਸ, ਰੀਐਕਟ ਅਤੇ ਵੈਬਜੀਐਲ. ਇਹ ਇੱਕ ਪ੍ਰਵਾਨਗੀ ਹੈ ਕਿ ਕਿਵੇਂ ਇਹਨਾਂ ਤਕਨੀਕਾਂ ਦੁਆਰਾ ਪ੍ਰਤੀਕਰਮ - ਤਿੰਨ-ਰੈਂਡਰਰ (ਸੰਖੇਪ R3R) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਮਿਲ ਕੇ ਕੰਮ ਮਿਲਦਾ ਹੈ.

ਵੈਬਜੀਐਲ ਲਈ ਸ਼ੁਰੂਆਤੀ ਗਾਈਡ ਦੇਖੋ ਅਤੇ ਰੀਐਕੱਟ ਅਤੇ ਵੈਬਜੀਐਲ ਦੀ ਜਾਣ-ਪਛਾਣ ਲਈ ਸਾਈਟ ਪਾਉਂਡ ਤੇ ਰੀਐਕਐਂਡ ਅਤੇ ਜੇ ਐਸਐਸਐਂਡ ਨਾਲ ਸ਼ੁਰੂਆਤ ਕਰੋ. ਇਹ ਲੇਖ ਅਤੇ ਨਾਲ ਨਾਲ ਕੋਡ ES6 ਸੰਟੈਕਸ ਵਰਤਦਾ ਹੈ.

Building a Game with Three.js, React and WebGLBuilding a Game with Three.js, React and WebGLRelated Semalt:
ES6Node.jsjQuerynpmAjaxMore. Sponsors

ਇਹ ਸਭ ਕਿਵੇਂ ਸ਼ੁਰੂ ਹੋਇਆ

ਕੁਝ ਸਮਾਂ ਪਹਿਲਾਂ, ਪੀਟ ਹੰਟ ਨੇ #RERTJ IRC ਚੈਨਲ ਵਿੱਚ ਸੈਮਟ ਦੀ ਵਰਤੋਂ ਨਾਲ ਇੱਕ ਗੇਮ ਬਣਾਉਣ ਬਾਰੇ ਇੱਕ ਮਜ਼ਾਕ ਬਣਾਇਆ:

ਮੈਂ ਸੱਟਾ ਮਾਰਦੀ ਹਾਂ ਕਿ ਅਸੀਂ ਰੀਕੈਕਟ ਦੇ ਨਾਲ ਇੱਕ ਪਹਿਲੇ ਵਿਅਕਤੀ ਨਿਸ਼ਾਨੇਬਾਜ਼ ਬਣਾ ਸਕਦੇ ਹਾਂ!
ਦੁਸ਼ਮਣ > <ਸਰੀਰ> ਆਦਿ.

ਮੈਂ ਹੱਸ ਪਈ ਹਾਂ ਉਹ ਹੱਸ ਪਾਈ ਮਿਠਾਈ ਦਾ ਸਮਾਂ ਬਹੁਤ ਵਧੀਆ ਸੀ. "ਧਰਤੀ ਉੱਤੇ ਕੌਣ ਇਹ ਕਰੇਗਾ?" ਮੈਂ ਸੋਚਿਆ.

ਕਈ ਸਾਲਾਂ ਬਾਅਦ, ਇਹੀ ਉਹ ਸਮਾਂ ਹੈ ਜੋ ਮਿਡਲ ਵਰਕਿੰਗ ਕਰ ਰਿਹਾ ਹੈ.

Building a Game with Three.js, React and WebGLBuilding a Game with Three.js, React and WebGLRelated Semalt:
ES6Node.jsjQuerynpmAjaxMore. Sponsors

ਕਰਿਮਾਮਾ ਕਾਮੇਲੌਨ ਇੱਕ ਖੇਡ ਹੈ ਜਿੱਥੇ ਤੁਸੀਂ ਪਾਵਰ-ਅਪਸ ਇਕੱਤਰ ਕਰਦੇ ਹੋ ਜੋ ਤੁਹਾਨੂੰ ਇੱਕ ਅਨੰਤ ਫ੍ਰੈਕਟਲ ਮੇਇਜ਼ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਸੁੰਗੜਦਾ ਹੈ. ਮੈਂ ਕੁਝ ਸਾਲਾਂ ਲਈ ਇੱਕ ਰੀਕਾਇਕ ਡਿਵੈਲਪਰ ਰਿਹਾ ਹਾਂ, ਅਤੇ ਮੈਨੂੰ ਉਤਸੁਕ ਸੀ ਜੇ ਤਿੰਨ ਗੱਡੀ ਚਲਾਉਣ ਦਾ ਕੋਈ ਤਰੀਕਾ ਸੀ. ਜੇ. ਸੰਮਲੇਟ ਜਦ R3R ਨੇ ਮੇਰੀ ਅੱਖ ਫੜੀ

ਕਿਉਂ ਕਰਦੇ ਹਨ?

ਮੈਨੂੰ ਪਤਾ ਹੈ ਕਿ ਤੁਸੀਂ ਕੀ ਸੋਚ ਰਹੇ ਹੋ: ਕਿਉਂ? ਮੈਨੂੰ ਇੱਕ ਪਲ ਲਈ ਹਾਸੇ. ਆਪਣੇ 3D ਦ੍ਰਿਸ਼ ਨੂੰ ਚਲਾਉਣ ਲਈ ਪ੍ਰਤੀਕਿਰਿਆ ਤੇ ਵਿਚਾਰ ਕਰਨ ਦੇ ਕੁਝ ਕਾਰਨ ਹਨ:

  • "ਘੋਸ਼ਣਾਤਮਕ" ਵਿਚਾਰ ਤੁਹਾਨੂੰ ਆਪਣੇ ਖੇਡ ਤਰਕ ਤੋਂ ਆਪਣੇ ਦ੍ਰਿਸ਼ਟੀਕੋਣ ਨੂੰ ਸਾਫ਼ ਤਰੀਕੇ ਨਾਲ ਵੱਖ ਕਰਦੇ ਹਨ.
  • , <ਕੰਧ /> , <ਪੱਧਰ> , ਆਦਿ.
  • "ਹਾਟ" (ਲਾਈਵ) ਗੇਮ ਸੰਪਤੀਆਂ ਦੇ ਮੁੜ ਲੋਡਿੰਗ. ਟੈਕਸਟ ਅਤੇ ਮਾਡਲਾਂ ਨੂੰ ਬਦਲੋ ਅਤੇ ਦੇਖੋ ਕਿ ਉਹ ਤੁਹਾਡੇ ਦ੍ਰਿਸ਼ ਵਿਚ ਲਾਈਵ ਅਪਡੇਟ ਕਰ ਰਹੇ ਹਨ!
  • ਆਪਣੇ 3D ਦ੍ਰਿਸ਼ ਨੂੰ ਨੇਟਿਵ ਬਰਾਉਜ਼ਰ ਟੂਲਸ ਦੇ ਨਾਲ ਮਾਰਕਅੱਪ ਦੇ ਤੌਰ ਤੇ ਜਾਂਚੋ ਅਤੇ ਡੀਬਗ ਕਰੋ, ਜਿਵੇਂ ਕਿ Chrome ਇੰਸਪੈਕਟਰ.
  • ਵੈਬਪੈਕ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਨਿਰਭਰਤਾ ਗ੍ਰਾਫ ਵਿੱਚ ਗੇਮ ਅਸਟੇਟ ਦਾ ਪ੍ਰਬੰਧ ਕਰੋ, ਜਿਵੇਂ ਕਿ <ਟੈਕਸਟਰਾਫ ਸੀਕੁਪੀ = {ਲੋੜ ('. / Assets / image. Png')} />

ਸੈਮਟਟ ਨੇ ਇਹ ਸਮਝਣ ਲਈ ਇੱਕ ਦ੍ਰਿਸ਼ ਬਣਾਇਆ ਕਿ ਇਹ ਸਭ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ.

ਸਿਫਾਰਸ਼ੀ ਕੋਰਸ

ਰੀਐਕਟ ਅਤੇ ਵੈਬਜੀਐਲ

ਮੈਂ ਇਸ ਲੇਖ ਦੇ ਨਾਲ ਇੱਕ ਗਿਟੀਹਬ ਰਿਪੋਜ਼ਟਰੀ ਦਾ ਨਮੂਨਾ ਬਣਾਇਆ ਹੈ. ਰਿਪੋਜ਼ਟਰੀ ਨੂੰ ਕਲੋਨ ਕਰੋ ਅਤੇ ਕੋਡ ਚਲਾਉਣ ਲਈ README ਵਿਚਲੀ ਹਦਾਇਤਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ ਅਤੇ ਨਾਲ ਨਾਲ ਫਾਲੋ. ਇਹ ਸਾਈਟ ਪਾਉਂਟੀ ਨੂੰ 3D ਰੋਬੋਟ ਤਾਰ ਦਿੰਦਾ ਹੈ!

Building a Game with Three.js, React and WebGLBuilding a Game with Three.js, React and WebGLRelated Semalt:
ES6Node.jsjQuerynpmAjaxMore. Sponsors

ਚੇਤਾਵਨੀ: R3R ਹਾਲੇ ਵੀ ਬੀਟਾ ਵਿੱਚ ਹੈ ਇਸਦਾ API ਪਰਿਵਰਤਨਸ਼ੀਲ ਹੈ ਅਤੇ ਭਵਿੱਖ ਵਿੱਚ ਬਦਲ ਸਕਦਾ ਹੈ. ਇਹ ਕੇਵਲ ਤਿੰਨ ਦੇ ਉਪ-ਸਮੂਹ ਨੂੰ ਹੈਂਡਲ ਕਰਦਾ ਹੈ ਇਸ ਸਮੇਂ ਜੇ. ਐਸ. ਮਿਮਾਲ ਨੂੰ ਪੂਰੀ ਖੇਡ ਬਣਾਉਣ ਲਈ ਇਹ ਪੂਰੀ ਤਰ੍ਹਾਂ ਪੂਰਾ ਹੋਇਆ, ਪਰ ਤੁਹਾਡਾ ਮਾਈਲੇਜ ਵੱਖੋ-ਵੱਖਰਾ ਹੋ ਸਕਦਾ ਹੈ.

ਵਿਊ ਕੋਡ ਪ੍ਰਬੰਧਨ

ਵੈਬਜੀਐਲ ਨੂੰ ਚਲਾਉਣ ਲਈ ਰੀਐਕ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦਾ ਮੁੱਖ ਫਾਇਦਾ ਹੈ ਸਾਡਾ ਦ੍ਰਿਸ਼ ਕੋਡ ਡ੍ਰੂਪਲਿਡ ਸਾਡੀ ਗੇਮ ਦੇ ਤਰਕ ਤੋਂ. ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਸਾਡੀ ਰੈਂਡਰਿੰਗ ਸੰਸਥਾਵਾਂ ਛੋਟੇ ਹਿੱਸੇ ਹਨ ਜੋ ਇਸ ਬਾਰੇ ਸੋਚਣਾ ਆਸਾਨ ਹਨ.

R3R ​​ਇੱਕ ਘੋਸ਼ਣਾਤਮਿਕ API ਦਾ ਪਰਦਾਫਾਸ਼ ਕਰਦਾ ਹੈ ਜੋ ਕਿ ਮਿਣਤੀ ਉਦਾਹਰਣ ਵਜੋਂ, ਅਸੀਂ ਲਿਖ ਸਕਦੇ ਹਾਂ:

     <ਸੀਨ><ਨਜ਼ਰੀਏਸਥਿਤੀ = {ਨਵੀਂ ਤੀਹਰੀ ਵੈਕਟਰ 3 (1, 1, 1)/>    

ਹੁਣ ਸਾਡੇ ਕੋਲ ਇੱਕ ਕੈਮਰੇ ਨਾਲ ਇੱਕ ਖਾਲੀ 3D ਦ੍ਰਿਸ਼ ਹੈ. ਸੀਨ ਨੂੰ ਇੱਕ ਜਾਲ ਜੋੜਨਾ <ਜੈਸ /> ਭਾਗ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨਾ ਅਤੇ ਇਸ ਨੂੰ ਦੇਣ ਨਾਲ ਅਤੇ a ਸ਼ਾਮਲ ਹਨ.

     <ਸੀਨ>.<ਜਾਲ><ਬੋਸ ਗੀਮੈਟਰੀਚੌੜਾਈ = {1}ਉਚਾਈ = {1}ਡੂੰਘਾਈ = {1}/>      

ਹੁੱਡ ਦੇ ਅਧੀਨ, ਇਹ ਤਿੰਨ ਦਰਸਾਉਂਦਾ ਹੈ. ਦ੍ਰਿਸ਼ ਅਤੇ ਆਟੋਮੈਟਿਕ ਤਿੰਨ ਨਾਲ ਇੱਕ ਜਾਲ ਜੋੜਦਾ ਹੈ. ਬਾਕਸਜੀਓਮੈਟਰੀ. ਜੇ ਤੁਸੀਂ ਇਸ ਜਗ੍ਹਾ 'ਤੇ ਇਕ ਨਵਾਂ ਜਾਲ ਜੋੜਦੇ ਹੋ, ਤਾਂ ਅਸਲੀ ਜਾਲ ਦੁਬਾਰਾ ਤਿਆਰ ਨਹੀਂ ਹੋਵੇਗਾ. ਜਿਵੇਂ ਕਿ ਵਨੀਲਾ ਰੀਐਕਟੀਡ ਅਤੇ ਡੀ ਓ ਐਮ ਦੇ ਨਾਲ, 3 ਡੀ ਦ੍ਰਿਸ਼ ਸਿਰਫ ਅੰਤਰਾਂ ਨਾਲ ਅਪਡੇਟ ਕੀਤਾ ਗਿਆ ਹੈ.

ਕਿਉਂਕਿ ਅਸੀਂ ਪ੍ਰਤੀਕਰਮ ਵਿੱਚ ਕੰਮ ਕਰ ਰਹੇ ਹਾਂ, ਅਸੀਂ ਖੇਡ ਨੂੰ ਇਕਾਈ ਨੂੰ ਭਾਗ ਫਾਇਲਾਂ ਵਿੱਚ ਵੱਖ ਕਰ ਸਕਦੇ ਹਾਂ. ਰੋਬੋਟ ਉਦਾਹਰਨ ਰਿਪੋਜ਼ਟਰੀ ਵਿੱਚ ਜੇ ਐਸ ਫਾਈਲ ਦਿਖਾਉਂਦੀ ਹੈ ਕਿ ਸ਼ੁੱਧ ਰੀਐਕਟੇਟ ਵਿਊ ਕੋਡ ਨਾਲ ਮੁੱਖ ਪਾਤਰ ਪ੍ਰਤੀਨਿੱਧ ਕਿਵੇਂ ਕਰਨਾ ਹੈ. ਇੱਕ "ਸਟੇਟਲੈੱਸ ਫੰਕਸ਼ਨਲ" ਕੰਪੋਨੈਂਟ ਨੂੰ ਮਿਟਾਓ, ਭਾਵ ਇਸਦਾ ਮਤਲਬ ਕੋਈ ਸਥਾਨਕ ਰਾਜ ਨਹੀਂ ਹੈ:

     ਕਾਂਬ ਰੋਬੋਟ = ({ਸਥਿਤੀ, ਘੁੰਮਣ}} =>    <ਜਾਲ ਘੁੰਮਾਉਣਾ = {ਸਥਾਨਕ ਰੋਟੇਸ਼ਨ}>         ;    

ਅਤੇ ਹੁਣ ਅਸੀਂ ਆਪਣੇ 3 ਡੀ ਦ੍ਰਿਸ਼ ਵਿਚ <ਰੋਬੋਟ /> ਸ਼ਾਮਲ ਕਰਦੇ ਹਾਂ!

     <ਸੀਨ>. .  <ਰੋਬੋਟਸਥਿਤੀ = {. }ਰੋਟੇਸ਼ਨ = {. }/>    

ਤੁਸੀਂ R3R Semalt repository ਤੇ API ਦੀਆਂ ਹੋਰ ਉਦਾਹਰਣਾਂ ਦੇਖ ਸਕਦੇ ਹੋ, ਜਾਂ ਨਾਲ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਪੂਰਨ ਉਦਾਹਰਨ ਸੈਟਅਪ ਵੇਖ ਸਕਦੇ ਹੋ.

ਗੇਮ ਲਾਜ਼ੀਕਲ ਪ੍ਰਬੰਧਨ

ਸਮੀਕਰਨ ਦਾ ਦੂਜਾ ਹਿੱਸਾ ਖੇਡ ਦੇ ਤਰਕਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰ ਰਿਹਾ ਹੈ. ਆਉ ਅਸੀਂ ਸਾਮਾਵਲ, ਸਾਡਾ ਰੋਬੋਟ, ਕੁਝ ਸਧਾਰਨ ਐਨੀਮੇਸ਼ਨ ਦੇਈਏ.

Building a Game with Three.js, React and WebGLBuilding a Game with Three.js, React and WebGLRelated Semalt:
ES6Node.jsjQuerynpmAjaxMore. Sponsors

ਗੇਮ ਲੂਪਸ ਕਿਵੇਂ ਰਵਾਇਤੀ ਤੌਰ ਤੇ ਕੰਮ ਕਰਦੇ ਹਨ? ਉਹ ਯੂਜਰ ਇਨਪੁਟ ਨੂੰ ਸਵੀਕਾਰ ਕਰਦੇ ਹਨ, ਪੁਰਾਣੀ "ਵਿਸ਼ਵ ਦੀ ਸਥਿਤੀ" ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਦੇ ਹਨ ਅਤੇ ਰੈਂਡਰਿੰਗ ਲਈ ਦੁਨੀਆ ਦੀ ਨਵੀਂ ਰਾਜ ਨੂੰ ਵਾਪਸ ਕਰਦੇ ਹਨ. ਸੁਵਿਧਾ ਲਈ, ਆਓ ਸਾਡਾ "ਗੇਮ ਸਟੇਟ" ਆਬਜੈਕਟ ਨੂੰ ਕੰਪੋਨੈਂਟ ਸਟੇਟ ਵਿਚ ਸਟੋਰ ਕਰੀਏ. ਵਧੇਰੇ ਪਰਿਪੱਕ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ, ਤੁਸੀਂ ਗੇਮ ਸਟੇਟ ਨੂੰ ਸ਼ਮਲਾਟ ਜਾਂ ਫਲਕਸ ਸਟੋਰ ਵਿੱਚ ਲੈ ਜਾ ਸਕਦੇ ਹੋ.

ਸਾਡੀ ਗੇਮ ਲੂਪ ਨੂੰ ਚਲਾਉਣ ਲਈ ਅਤੇ GameContainer ਵਿੱਚ ਲੂਪ ਨੂੰ ਚਲਾਉਣ ਲਈ ਅਸੀਂ ਬਰਾਊਜ਼ਰ ਦੇ ਬੇਨਤੀ ਐਨੀਮੇਸ਼ਨਫ੍ਰੇਮ API ਕਾਲਬੈਕ ਦੀ ਵਰਤੋਂ ਕਰਾਂਗੇ. ਜੇ ਐਸ ਰੋਬੋਟ ਨੂੰ ਐਨੀਮੇਟ ਕਰਨ ਲਈ, ਆਓ ਬੇਨਤੀ ਐਂਮੀਸ਼ਨਫ੍ਰੇਮ ਨੂੰ ਪਾਸ ਕੀਤੀ ਟਾਈਮਸਟੈਂਪ ਤੇ ਆਧਾਰਿਤ ਨਵੀਂ ਸਥਿਤੀ ਦੀ ਗਣਨਾ ਕਰੀਏ, ਫਿਰ ਰਾਜ ਵਿੱਚ ਨਵੀਂ ਸਥਿਤੀ ਨੂੰ ਸਟੋਰ ਕਰੋ.

     // .gameLoop (ਸਮਾਂ) {ਇਹ. setState ({ਰੋਬੋਟ: ਨਵੇਂ ਤਿੰਨ ਵੈਕਟਰ 3 (ਮੈਥ ਪਾਪ (ਟਾਈਮ * 0. 01), 0, 0)});}    

ਕਾੱਲ ਕਰਨਾ ਸੈੱਟਸਟੇਟ ਬੱਚੇ ਦੇ ਹਿੱਸਿਆਂ ਦਾ ਮੁੜ-ਰੈਂਡਰ ਅਤੇ 3D ਦ੍ਰਿਸ਼ ਅਪਡੇਟ ਅਸੀਂ ਸਟੇਟ ਨੂੰ ਕੰਟੇਨਰ ਦੇ ਭਾਗ ਤੋਂ ਲੈ ਕੇ ਹਾਜ਼ਰੀਏਸ਼ਨਲ ਤੱਕ ਪਾਸ ਕਰਦੇ ਹਾਂ <ਖੇਡ /> ਕੰਪੋਨੈਂਟ:

     ਰੈਂਡਰ    {const {robotPosition} = ਇਹ. ਰਾਜਵਾਪਸੀ <ਗੇਮrobotPosition = {robotPosition}/>;}    

ਇੱਕ ਉਪਯੋਗੀ ਪੈਟਰਨ ਹੈ ਜੋ ਅਸੀਂ ਇਸ ਕੋਡ ਨੂੰ ਵਿਵਸਥਿਤ ਕਰਨ ਲਈ ਅਰਜ਼ੀ ਦੇ ਸਕਦੇ ਹਾਂ. ਰੋਬੋਟ ਦੀ ਸਥਿਤੀ ਨੂੰ ਅਪਡੇਟ ਕਰਨਾ ਇੱਕ ਸਧਾਰਨ ਸਮਾਂ-ਅਧਾਰਿਤ ਗਣਨਾ ਹੈ. ਭਵਿੱਖ ਵਿੱਚ, ਇਹ ਪਿਛਲੇ ਗੇਮ ਸਟੇਟ ਤੋਂ ਪਿਛਲੀ ਰੋਬੋਟ ਸਥਿਤੀ ਨੂੰ ਵੀ ਧਿਆਨ ਵਿੱਚ ਰੱਖ ਸਕਦਾ ਹੈ. ਇਕ ਫੰਕਸ਼ਨ ਜੋ ਕੁਝ ਡਾਟਾ ਲੈਂਦਾ ਹੈ, ਇਸ 'ਤੇ ਅਮਲ ਕਰਦਾ ਹੈ ਅਤੇ ਨਵੇਂ ਡਾਟਾ ਵਾਪਸ ਕਰਦਾ ਹੈ, ਨੂੰ ਅਕਸਰ ਰੀਡਿਊਜ਼ਰ ਵਜੋਂ ਦਰਸਾਇਆ ਜਾਂਦਾ ਹੈ. ਅਸੀਂ ਅੰਦੋਲਨ ਨੂੰ ਇੱਕ ਰੀਡਿਊਸਰ ਫੰਕਸ਼ਨ ਵਿੱਚ ਐਡਿਟ ਕਰ ਸਕਦੇ ਹਾਂ!

ਹੁਣ ਅਸੀਂ ਇੱਕ ਸਾਫ, ਸਧਾਰਣ ਗੇਮ ਲੂਪ ਲਿਖ ਸਕਦੇ ਹਾਂ ਜਿਸ ਵਿੱਚ ਕੇਵਲ ਫੰਕਸ਼ਨ ਕਾਲਾਂ ਹਨ:

     ਇੰਪੋਰਟ ਰੋਬੋਟ. / ਗੇਮ-ਰੋਡਕਰਸ / ਰੋਬੋਟਮੈਵਮੈਂਟ ਰੇਡੀਉਜਰ js ';// .gameLoop    {const oldState = ਇਹ ਰਾਜconst newstate = ਰੋਬੋਟਮੈਵਮੈਂਟ ਰੇਡੀਉਜਰ (ਪੁਰਾਣੀ ਸਟੇਟ);ਇਹ. setState (ਨਵੀਂ ਸਟੇਟ);}    

ਗੇਮ ਲੂਪ ਨੂੰ ਹੋਰ ਤਰਕ ਜੋੜਨ ਲਈ, ਜਿਵੇਂ ਕਿ ਪ੍ਰਸਾਰਿਤ ਕਰਨ ਵਾਲੇ ਭੌਤਿਕੀ, ਇਕ ਹੋਰ ਰੀਲਿਊਸਰ ਫੰਕਸ਼ਨ ਬਣਾਉ ਅਤੇ ਇਸ ਨੂੰ ਪਿਛਲੇ ਰੇਡਿਊਸਰ ਦਾ ਨਤੀਜਾ ਪਾਸ ਕਰੋ:

     ਕਾਂਸਟੇਂਡ ਨਿਊਸਟੇਟ = ਫਿਜ਼ਿਕਸ ਰੈਡੀਸਕ (ਰੋਬੋਟਮੈਵਮੈਂਟ ਰੇਡੀਉਜਰ (ਪੁਰਾਣੀ ਸਟੇਟ));    

ਜਿਵੇਂ ਕਿ ਤੁਹਾਡਾ ਗੇਮ ਇੰਜਣ ਵਧਦਾ ਹੈ, ਗੇਮ ਲਾਜ਼ੀਕਲ ਨੂੰ ਵੱਖਰੇ ਫੰਕਸ਼ਨ ਵਿੱਚ ਆਯੋਜਿਤ ਕਰਨਾ ਮਹੱਤਵਪੂਰਣ ਬਣ ਜਾਂਦਾ ਹੈ. ਇਹ ਸੰਗਠਨ ਰੀਡਰਿਸਰ ਪੈਟਰਨ ਦੇ ਨਾਲ ਸਿੱਧਾ ਹੁੰਦਾ ਹੈ.

ਸੰਪਤੀ ਪ੍ਰਬੰਧਨ

ਇਹ ਅਜੇ ਵੀ ਆਰ 3 ਆਰ ਦਾ ਇੱਕ ਵਿਕਸਤ ਖੇਤਰ ਹੈ ਟੈਕਸਟ ਲਈ, ਤੁਸੀਂ JSX ਟੈਗ ਤੇ ਇੱਕ url ਗੁਣ ਦਿਓ. ਵੈਬਪੈਕ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, ਤੁਸੀਂ ਚਿੱਤਰ ਨੂੰ ਸਥਾਨਕ ਮਾਰਗ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ:

     <ਟੈਕਸਟ url = {ਲੋੜੀਂਦਾ ਹੈ (/. / ਸਥਾਨਕ / ਚਿੱਤਰ / ਮਾਰਗ.  

ਹੋਰ ਸੰਪਤੀਆਂ ਜਿਵੇਂ ਕਿ 3D ਮਾਡਲਾਂ ਲਈ, ਤੁਹਾਨੂੰ ਅਜੇ ਵੀ ਤਿੰਨ ਵਿੱਚੋਂ ਬਿਲਟ-ਇਨ ਲੋਡਰ ਵਰਤ ਕੇ ਉਹਨਾਂ 'ਤੇ ਕਾਰਵਾਈ ਕਰਨੀ ਪਵੇਗੀ. js, ਜੇਸਨੌਲੋਡਰ ਵਾਂਗ ਮੈਂ 3D ਮਾਡਲ ਫਾਈਲਾਂ ਨੂੰ ਲੋਡ ਕਰਨ ਲਈ ਇੱਕ ਕਸਟਮ ਵੈਬਪੈਕ ਲੋਡਰ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ, ਪਰੰਤੂ ਅਖੀਰ ਵਿੱਚ ਇਸ ਵਿੱਚ ਕੋਈ ਲਾਭ ਨਹੀਂ ਸੀ. ਮਿਡਲ ਨੂੰ ਬਾਇਨਰੀ ਡਾਟੇ ਦੇ ਤੌਰ ਤੇ ਇਲਾਜ ਕਰਨ ਅਤੇ ਫਾਇਲ-ਲੋਡਰ ਨਾਲ ਲੋਡ ਕਰਨ ਲਈ ਸਾਮਾਲਕ ਆਸਾਨ. ਇਹ ਅਜੇ ਵੀ ਮਾਡਲ ਡੇਟਾ ਦੇ ਲਾਈਵ ਰੀਲੋਡਿੰਗ ਨੂੰ ਪੂਰਾ ਕਰਦਾ ਹੈ. ਤੁਸੀਂ ਇਸ ਨੂੰ ਉਦਾਹਰਨ ਕੋਡ ਵਿੱਚ ਕਾਰਵਾਈ ਕਰਦਿਆਂ ਵੇਖ ਸਕਦੇ ਹੋ.

ਡੀਬੱਗਿੰਗ

R3R ​​ਕ੍ਰਾਈਮ ਅਤੇ ਫਾਇਰਫਾਕਸ ਦੋਵਾਂ ਲਈ ਰੀਐਕਟਰ ਡਿਵੈਲਪਰ ਟੂਲ ਐਕਸਟੈਂਸ਼ਨ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ. ਤੁਸੀਂ ਆਪਣੇ ਦ੍ਰਿਸ਼ਟੀ ਦੀ ਜਾਂਚ ਕਰ ਸਕਦੇ ਹੋ ਜਿਵੇਂ ਕਿ ਇਹ ਵਨੀਲਾ ਡੋਮ ਸੀ! ਇੰਸਪੈਕਟਰ ਵਿਚਲੇ ਤੱਤ 'ਤੇ ਮਿਲਾ ਕੇ ਉਨ੍ਹਾਂ ਦੇ ਸੀਨ ਬਕਸੇ ਨੂੰ ਦ੍ਰਿਸ਼ ਵਿਚ ਦਰਸਾਇਆ ਗਿਆ ਹੈ. ਤੁਸੀਂ ਟੈਕਸਟਚਰ ਪ੍ਰੀਭਾਸ਼ਾਵਾਂ ਤੇ ਵੀ ਹੋਵ ਸਕਦੇ ਹੋ ਇਹ ਦੇਖਣ ਲਈ ਕਿ ਕਿਹੜੀਆਂ ਚੀਜ਼ਾਂ ਉਸ ਦ੍ਰਿਸ਼ਟੀਕੋਣ ਵਿੱਚ ਵਰਤਦੀਆਂ ਹਨ, ਉਹ ਟੈਕਸਟ ਨੂੰ ਵਰਤਦੇ ਹਨ.

Building a Game with Three.js, React and WebGLBuilding a Game with Three.js, React and WebGLRelated Semalt:
ES6Node.jsjQuerynpmAjaxMore. Sponsors

ਤੁਸੀਂ ਆਪਣੇ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੀ ਡੀਬੱਗਿੰਗ ਲਈ ਮਦਦ ਲਈ 3-ਰੈਂਡਰਰ ਸੈਮਤਾਲ ਚੈਟ ਰੂਮ ਵਿਚ ਵੀ ਸਾਡੇ ਨਾਲ ਸ਼ਾਮਲ ਹੋ ਸਕਦੇ ਹੋ.

ਕਾਰਗੁਜ਼ਾਰੀ ਬਾਰੇ ਵਿਚਾਰ

ਕ੍ਰਿਸ਼ਮਾ ਦਾ ਨਿਰਮਾਣ ਕਰਦੇ ਸਮੇਂ ਚੈਮਲੀਅਨ, ਸੈਮਟਟ ਕਈ ਕਾਰਗੁਜ਼ਾਰੀ ਮੁੱਦੇ ਵਿੱਚ ਚਲਾ ਜਾਂਦਾ ਹੈ ਜੋ ਇਸ ਵਰਕਫਲੋ ਲਈ ਅਨੋਖਾ ਹਨ.

  • ਮੇਰੀ ਗਰਮ ਰੀਲੋਡ ਟਾਈਮ ਵੈਬਪੈਕ ਨਾਲ ਤੀਹ ਸਕਿੰਟ ਤੱਕ ਸੀ! ਇਹ ਇਸ ਲਈ ਹੈ ਕਿਉਂਕਿ ਵੱਡੀਆਂ ਸੰਪੱਤੀਆਂ ਨੂੰ ਹਰ ਰਲੋਡ 'ਤੇ ਬੰਡਲ ਵਿਚ ਮੁੜ ਲਿਖਣਾ ਪੈਂਦਾ ਹੈ. ਹੱਲ ਇਹ ਹੈ ਕਿ ਵੈਬਪੈਕ ਦੀ ਡੀਐਲਐਲ ਪਲੱਗਇਨ ਨੂੰ ਲਾਗੂ ਕੀਤਾ ਗਿਆ, ਜੋ ਮੁੜ ਲੋਡ ਕਰਨ ਦੇ ਸਮੇਂ ਨੂੰ ਪੰਜ ਸਕਿੰਟਾਂ ਤੋਂ ਵੀ ਘੱਟ ਕਰ ਦਿਤਾ ਗਿਆ.
  • ਆਦਰਸ਼ਕ ਤੌਰ ਤੇ ਤੁਹਾਡੀ ਸੀਨ ਨੂੰ ਕੇਵਲ ਇਕ ਸੈਟਸਟੇਟ ਪ੍ਰਤੀ ਫਰੇਮ ਰੇਂਡਰ ਤੇ ਕਾਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ. ਮੇਰੀ ਖੇਡ ਨੂੰ ਪਰਫਾਰਮ ਕਰਨ ਦੇ ਬਾਅਦ, ਖੁਦ ਦੀ ਪ੍ਰਤੀਕ੍ਰਿਆ ਮੁੱਖ ਬਹਿਸ ਹੈ. ਕਾਲਿੰਗ ਸੈਟਸਟੇਟ ਇੱਕ ਤੋਂ ਵੱਧ ਫ੍ਰੇਮ ਦੋ ਵਾਰ ਰੈਂਡਰ ਬਣਾ ਸਕਦੇ ਹਨ ਅਤੇ ਕਾਰਗੁਜ਼ਾਰੀ ਨੂੰ ਘਟਾ ਸਕਦੇ ਹਨ.
  • ਨਿਸ਼ਚਤ ਚੀਜ਼ਾਂ ਦੀ ਗਿਣਤੀ ਕਰੋ, R3R ​​ਵਨੀਲਾ ਤਿੰਨ ਨਾਲੋਂ ਵੀ ਮਾੜੀ ਪ੍ਰਦਰਸ਼ਨ ਕਰੇਗੀ. ਜੇ ਐਸ ਕੋਡ ਮੇਰੇ ਲਈ ਇਹ 1000 ਦੇ ਆਕਾਰ ਸੀ. ਤੁਸੀਂ R3R ਨੂੰ ਤਿੰਨ ਨਾਲ ਤੁਲਨਾ ਕਰ ਸਕਦੇ ਹੋ ਉਦਾਹਰਨਾਂ ਵਿੱਚ "ਬੈਂਚਮਾਰਕ" ਦੇ ਤਹਿਤ ਜੇ ਐਸ.

Chrome DevTools ਟਾਈਮਲਾਈਨ ਫੀਚਰ ਡੀਬੱਗਿੰਗ ਕਾਰਗੁਜ਼ਾਰੀ ਲਈ ਸ਼ਾਨਦਾਰ ਔਪਸ਼ਨ ਹੈ. ਆਪਣੇ ਗੇਮ ਲੂਪ ਦੀ ਦ੍ਰਿਸ਼ਟੀ ਤੋਂ ਨਿਰੀਖਣ ਕਰਨਾ ਅਸਾਨ ਹੈ, ਅਤੇ ਇਹ DevTools ਦੇ "ਪ੍ਰੋਫਾਈਲ" ਫੀਚਰ ਤੋਂ ਜ਼ਿਆਦਾ ਪੜ੍ਹਨਯੋਗ ਹੈ.

ਇਹ ਇਸ ਤਰ੍ਹਾਂ ਹੈ!

ਚਰਚਵਾਦ ਚੈੱਕ ਕਰੋ ਕਿ ਇਹ ਸੈੱਟਅੱਪ ਵਰਤਣਾ ਸੰਭਵ ਕਿਉਂ ਹੈ. ਹਾਲਾਂਕਿ ਇਹ ਟੂਲਸਚੈਨ ਅਜੇ ਵੀ ਬਹੁਤ ਛੋਟਾ ਹੈ, ਮੇਰੇ ਕੋਲ R3R ਨਾਲ ਸੈਮਲਾਗਲ ਨੂੰ ਮੇਰੇ ਵੈਬਜੀਐਲ ਗੇਮ ਕੋਡ ਨੂੰ ਠੀਕ ਢੰਗ ਨਾਲ ਸੰਗਠਿਤ ਕਰਨ ਲਈ ਅਭਿਲਾਖਾ ਪਾਇਆ ਗਿਆ ਹੈ ਤੁਸੀਂ ਕੁਝ ਚੰਗੀ ਸੰਗਠਿਤ ਕੋਡ ਦੇ ਨਮੂਨੇ ਦੇਖਣ ਲਈ ਛੋਟੇ ਪਰ ਵਧ ਰਹੇ R3R ਉਦਾਹਰਨਾਂ ਪੇਜ ਨੂੰ ਵੀ ਵੇਖ ਸਕਦੇ ਹੋ.

ਇਸ ਲੇਖ ਦਾ ਮਾਰਕ ਬਰਾਊਨ ਅਤੇ ਕੇਵ ਜ਼ੈਲੈਟਰ ਦੁਆਰਾ ਸਮੀਖਿਆ ਕੀਤੀ ਗਈ ਸੀ. ਸਮਾਲਟ ਸਮਗਰੀ ਲਈ ਸਮਾਲਟ ਦੇ ਸਾਰੇ ਸਮਾਰਕਾਂ ਦਾ ਧੰਨਵਾਦ ਸਭ ਤੋਂ ਵਧੀਆ ਇਹ ਹੋ ਸਕਦਾ ਹੈ!

Building a Game with Three.js, React and WebGLBuilding a Game with Three.js, React and WebGLRelated Semalt:
ES6Node.jsjQuerynpmAjaxMore. Sponsors
ਸ਼ੁਰੂਆਤ ਕਰਨ ਵਾਲਿਆਂ ਲਈ ਸਿੱਖਣ ਦਾ ਵਧੀਆ ਤਰੀਕਾ
ਵੇਸ ਬੋਸ
ਤੁਹਾਨੂੰ ਅਸਲ ਦੁਨੀਆਂ ਬਣਾਉਣ ਲਈ ਇੱਕ ਕਦਮ-ਦਰ-ਕਦਮ ਸਿਖਲਾਈ ਕੋਰਸ ਜੇਐਸ + ਫਾਇਰਬੇਜ ਐਪਸ ਅਤੇ ਵੈਬਸਾਈਟ ਦੇ ਭਾਗ ਦੁਪਹਿਰ ਦੋ ਕੁ ਵਜੇ ਕੂਪਨ ਕੋਡ 'SITEPOINT' ਨੂੰ ਚੈੱਕਅਪ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ 25% ਬੰਦ ਦਾ ਉਪਯੋਗ ਕਰੋ.

March 1, 2018