Главная » Файлы » Новогодний раздел » Новогодний раздел

Уникальный 3D снег на HTML5 Canvas для uCoz
24.06.14, 18:53:20

Скачать файл




Как только я увидел этот снежок - просто влюбился в него и совесть мне не позволила не разместить такой материал на apo-ucoz. Когда вы будете водить курсором по странице сайта - снег будет вращаться в 3D перспективе. Выглядит очень здорово и свежо

Для начала посмотрите ДЕМО

Моё тестирование в фидле: КЛИК

Установка:

После < /head > на нужных страницах вставляйте:
Код
<script type="text/javascript" src="/js/ThreeCanvas.js"></script>  
  <script type="text/javascript" src="/js/Snow.js"></script>  
  <script>  
var SCREEN_WIDTH = window.innerWidth;  
var SCREEN_HEIGHT = window.innerHeight;  

var container;  

var particle;  

var camera;  
var scene;  
var renderer;  

var mouseX = 0;  
var mouseY = 0;  

var windowHalfX = window.innerWidth / 2;  
var windowHalfY = window.innerHeight / 2;  

var particles = [];  
var particleImage = new Image(); //THREE.ImageUtils.loadTexture( "img/ParticleSmoke.png" );  
particleImage.src = '/img/ParticleSmoke.png';  

function init() {  

container = document.createElement('div');  
document.body.appendChild(container);  

camera = new THREE.PerspectiveCamera(75, SCREEN_WIDTH / SCREEN_HEIGHT, 1, 10000);  
camera.position.z = 1000;  

scene = new THREE.Scene();  
scene.add(camera);  

renderer = new THREE.CanvasRenderer();  
renderer.setSize(SCREEN_WIDTH, SCREEN_HEIGHT);  
var material = new THREE.ParticleBasicMaterial({  
map: new THREE.Texture(particleImage)  
});  

for (var i = 0; i < 500; i++) {  

particle = new Particle3D(material);  
particle.position.x = Math.random() * 2000 - 1000;  
particle.position.y = Math.random() * 2000 - 1000;  
particle.position.z = Math.random() * 2000 - 1000;  
particle.scale.x = particle.scale.y = 1;  
scene.add(particle);  

particles.push(particle);  
}  

container.appendChild(renderer.domElement);  

document.addEventListener('mousemove', onDocumentMouseMove, false);  
document.addEventListener('touchstart', onDocumentTouchStart, false);  
document.addEventListener('touchmove', onDocumentTouchMove, false);  

setInterval(loop, 1000 / 60);  

}  

function onDocumentMouseMove(event) {  

mouseX = event.clientX - windowHalfX;  
mouseY = event.clientY - windowHalfY;  
}  

function onDocumentTouchStart(event) {  

if (event.touches.length == 1) {  

event.preventDefault();  

mouseX = event.touches[0].pageX - windowHalfX;  
mouseY = event.touches[0].pageY - windowHalfY;  
}  
}  

function onDocumentTouchMove(event) {  

if (event.touches.length == 1) {  

event.preventDefault();  

mouseX = event.touches[0].pageX - windowHalfX;  
mouseY = event.touches[0].pageY - windowHalfY;  
}  
}  

//  

function loop() {  

for (var i = 0; i < particles.length; i++) {  

var particle = particles[i];  
particle.updatePhysics();  

with(particle.position) {  
if (y < -1000) y += 2000;  
if (x > 1000) x -= 2000;  
else if (x < -1000) x += 2000;  
if (z > 1000) z -= 2000;  
else if (z < -1000) z += 2000;  
}  
}  

camera.position.x += (mouseX - camera.position.x) * 0.05;  
camera.position.y += (-mouseY - camera.position.y) * 0.05;  
camera.lookAt(scene.position);  

renderer.render(scene, camera);  

}  

window.onload = function() {  
init()  
}  
  </script>
Два скрипта из прикреплённого архива залейте в папку js, а картинку в папку img

Материал подготовлен Apocalypse
Категория: Новогодний раздел | Добавил: Apocalypse | Теги: ucoz, Canvas, на, уникальный, HTML5, снег, для, 3D
Просмотров: 827 | Загрузок: 0 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email: