From d31304acd240327efd63caf72210ba45aafd7e47 Mon Sep 17 00:00:00 2001 From: logsol Date: Thu, 12 Jul 2012 23:52:10 +0200 Subject: [PATCH] added view modules --- lib/Chuck/Settings.js | 2 +- lib/Chuck/View/CameraController.js | 30 +++++++++++ lib/Chuck/View/View.js | 81 +++++++++++++++++++++++++++++ static/img/100.gif | Bin 0 -> 618 bytes static/img/100.png | Bin 0 -> 1931 bytes view.html | 28 ++++++++++ view.js | 9 ++++ 7 files changed, 149 insertions(+), 1 deletion(-) mode change 100644 => 100755 lib/Chuck/Settings.js create mode 100755 lib/Chuck/View/CameraController.js create mode 100755 lib/Chuck/View/View.js create mode 100755 static/img/100.gif create mode 100755 static/img/100.png create mode 100755 view.html create mode 100755 view.js diff --git a/lib/Chuck/Settings.js b/lib/Chuck/Settings.js old mode 100644 new mode 100755 index 6cddb1d..1477ed6 --- a/lib/Chuck/Settings.js +++ b/lib/Chuck/Settings.js @@ -43,7 +43,7 @@ define(function() { ITEM_RESTITUTION: 0.02, // debug draw - DEBUG_DRAW_CANVAS_SPRITE: isBrowserEnvironment() ? document.getElementById("canvas").getContext("2d") : undefined, + DEBUG_DRAW_CANVAS_SPRITE: null,//isBrowserEnvironment() ? document.getElementById("canvas").getContext("2d") : undefined, IS_BROWSER_ENVIRONMENT: isBrowserEnvironment() }; diff --git a/lib/Chuck/View/CameraController.js b/lib/Chuck/View/CameraController.js new file mode 100755 index 0000000..98946fc --- /dev/null +++ b/lib/Chuck/View/CameraController.js @@ -0,0 +1,30 @@ +define(['Vendor/Wrapper/Three', 'Chuck/Settings'], function(Three, Settings) { + + function CameraController() { + this.camera = new Three.OrthographicCamera( + -Settings.STAGE_WIDTH/2, + Settings.STAGE_WIDTH/2, + Settings.STAGE_HEIGHT/2, + -Settings.STAGE_HEIGHT/2, + -2000, + 1000 + ); + + //this.camera = new Three.PerspectiveCamera(45, 600 / 400, 1, 1000); + + this.camera.position.z = 481; + } + + CameraController.prototype.getCamera = function(){ + return this.camera; + } + + CameraController.prototype.setPosition = function(x, y, z){ + this.camera.position.x = x; + this.camera.position.y = y; + this.camera.position.z = z; + } + + return CameraController; + +}); \ No newline at end of file diff --git a/lib/Chuck/View/View.js b/lib/Chuck/View/View.js new file mode 100755 index 0000000..2734852 --- /dev/null +++ b/lib/Chuck/View/View.js @@ -0,0 +1,81 @@ +define(["Vendor/Wrapper/Three", "Chuck/Settings", "Chuck/View/CameraController"], function(Three, Settings, CameraController){ + + function View(){ + + this.scene = null; + this.renderer = null; + this.cameraController = new CameraController(); + + this.init(); + } + + View.prototype.init = function(){ + + var self = this; + + this.renderer = new Three.WebGLRenderer(); + this.renderer.setSize(600, 400); + document.body.appendChild(this.renderer.domElement); + + this.scene = new Three.Scene(); + this.scene.add(this.cameraController.getCamera()); + +/* + var ambientLight = new Three.AmbientLight(0xffffff); + this.scene.add(ambientLight); + + var directionalLight = new Three.DirectionalLight(0xffffff); + directionalLight.position.set(1, 0, 10).normalize(); + this.scene.add(directionalLight); + + + this.createMesh(100, 100, 100, 100, 'static/img/100.png', function(mesh){ + console.log(mesh); + self.scene.add(mesh); + }); + + this.createMesh(100, 100, 210, 100, 'static/img/100.png', function(mesh){ + self.scene.add(mesh); + }); +*/ + this.animate(this); + } + + View.prototype.animate = function(scope) { + requestAnimationFrame(function(){ + scope.animate(scope); + }); + //plane.rotation.z += .01; + //plane.position.z += 1; + //plane.position.x += .4; + //plane.position.y += .4; + + scope.render(); + //stats.update(); + } + + View.prototype.render = function() { + console.log('render', this); + this.renderer.render(this.scene, this.cameraController.getCamera()); + } + + View.prototype.createMesh = function(width, height, x, y, img, callback) { + var textureImg = new Image(); + textureImg.onload = function(){ + var material = new Three.MeshLambertMaterial({ + map: Three.ImageUtils.loadTexture(img) + }); + + var plane = new Three.Mesh(new Three.PlaneGeometry(width, height), material); + plane.overdraw = true; + plane.position.z = 0; + plane.position.x = x; + plane.position.y = y; + + callback(plane); + }; + textureImg.src = img; + } + + return View; +}); \ No newline at end of file diff --git a/static/img/100.gif b/static/img/100.gif new file mode 100755 index 0000000000000000000000000000000000000000..c65bc2fa7995c6271e8ec465ff0cb60bb4011d4c GIT binary patch literal 618 zcmZ?wbhEHbOkqf2IKsei<;~W8k0!kOdTYo1_AkHQ{`&iE?X8lN&lewlGV}h26Hh*0 zeE;Lg&3F4Z->p0Ma?St$|5x0|W*`M9{$v3w*8!0rI~iF2E2#9PWX{W2wJzuNz5<=| zCAs%2*1fNJ|Np>(0uLRj{u4`zPUcw6zp$djYi-o}8*9o=zpdK;U_*tE-t6-)wp5+X z+kOATjvBx9x8MKRQzy^E;l;tk#L29}-o(jk#>>>I%*e&W#i+tDak4WnH@^xWKR*jU zYah@2g{*8QY+U?Plo*%I=TPF%Wiz|X`r=?y;=)-|1Ae?>Y!Kv1j1_SVR5%zd6J1)umUqOQVX4{kc`sH7K4xZT ze(WgmGkL-3G%j}|ox}sPoJDnXcd-~uTE;(HarV?I_DN4VqxfYOa;(~vux*uZc9XMt zQ{q9v*?t?U4Dz%*>i(r|%hGh3FR(;F$|gYJ(19%lDXu4$Mk_@xVP^|B+w1+VkuiyX z^~~z%py>=O3(eYs3KC}e?A^!n!8tW-mC3)ty*&cp#`aeIvu-JRP-`-tcU*FiAegE9v-QV9o iINUAozi-da&o3^ojz7O|@9*y)9-p4?f8UFP!5RP=tN^J1 literal 0 HcmV?d00001 diff --git a/static/img/100.png b/static/img/100.png new file mode 100755 index 0000000000000000000000000000000000000000..707a917fd2d9f31f515dc11c44316406c6b82d4f GIT binary patch literal 1931 zcmV;62Xy#}P)Px#1ZP1_K>z@;j|==^1poj58FWQhbW?9;ba!ELWdK2BZ(?O2No`?gWm08fWO;GP zWjp`?2M|d_K~#8N?VCM_WJM6iUnXc^XrO0ipdu>jsj!D8x|zy>3Ze&#U|_Zv3JMpT zaGW9>f@gAq1_q0P7a3?I_<;y!ifG`mpkOAfaI$w}4RzGiR8@CZ_v?A@?MyGlF(3ce zuix+etGcFVuKW7We|fy|_M4$_%EaN@Pd<41l}9no?4IOt>D&$mXd>rzPDxzIDxP)? zmLF>dtg@TGq0VZsnzNQlc048Lu*xjsJZjz2(0SQqvIZ;IUTB~VR)ZC8N6Qirk6J5d z^#S2Iw!zxeH1xQmkES`RIja@;${KB2X-K3REMx12oCTQTfp%NnY8Yx?xb?<&7S8gPTW@woR^m9tFoEk=UgI%4 z+?&VstNiw?1lDt}Z-+w69-IZU(I1|9%dYRa6M$#{SVbM5e9t!)vXXLZmv~13rL;)`57MYinbep015~~7!6?& zrj^1HnFvoY8R_=q!E)vo$V^z;YaEs)1ui34$O~aPbKIGRcwR6U(BV!;SojJKl?}_2 zUnVSJG<<40OXntHB3Pa|I7yL=k`eL|EhY+9AuKb$_~Z&;K}kZ_oVfRHiaE;tn*=)( zI_7vTAg7aQJNrh27nYe9 z$t%P(bpFLh>*=f@tU&8f4$A{2u7SC}eES{n?^iFrWCpx73@mIQ;7>1wqRybL-udlW zin+5QDjH{i>+h_1 zY1Z!=1s+AKs9BL=L#NZPlh>-i@}HNKO9g)C%nK8TMJ-;>4!-Q>1!3_w`mcs%lM^>z zWJm6zX0}dQ{u&JyKXLLg-K{==l6|I_hM9efrj)1Qs-2YtWKLj0uy}zt=PDAx?1MrJ zjWB#ISh?#O>GcAa=PZ6b8kVjgAy|<@kj03^ku>aC4a?>OM|DRUR`F$*9atHb>FTnX zd7K3!pSzAvm~?^_Iu zryhqzubZdFn&ouLTEQYlhyQ(m!KpP^i|uWmeQ{XAyk*V;GbV$lA&Ol!3+ET=$cj^s zA6OSw1Vo=cV?wZ~Jef5sbW2QUktsA9v&j%GLZ}g$3M^tFR>P!iBe3)}gIISMdesYc zA?plFtda<2AXv$pTty%{_~e)oXVr%l-|k4xb#%d?uwe5q6u@zG7Rd=TSd0FvCoJAW zV9nB9h3=<9okzFE&g#=rna3KicAw}dk~bCvp|oDZsyjZy?O))rHZ@pF-@Jwj zdr1T@eB1Z8C1Zz5ay+!5e;CW*eN<-az zEp}u0PRkK`Tx*L)7kFw)sSE2opTCcyCU-x}3oGl#P3HblXawh%mvne7eeQmi**e(H za{da%|79e8+#gHtsaZT%LN%+wnr|zMjBBurA8q9}rOjD2oaOn!!CU zZO&@2jQ?;^q0eg0%5au0Y-9CDp + + + Chuck + + + + + + diff --git a/view.js b/view.js new file mode 100755 index 0000000..36b1aa5 --- /dev/null +++ b/view.js @@ -0,0 +1,9 @@ +requirejs.config({ + baseUrl: 'lib' +}); + +var inspector = {}; + +requirejs(["Chuck/View/View"], function(View) { + var view = new View(); +}); \ No newline at end of file