|
1 |
| -import * as THREE from "three"; |
2 |
| -import { TextGeometry } from "three/addons/geometries/TextGeometry.js"; |
3 |
| -import { FontLoader } from "three/addons/loaders/FontLoader.js"; |
| 1 | +import * as THREE from 'three' |
| 2 | +import { TextGeometry } from 'three/addons/geometries/TextGeometry.js' |
| 3 | +import { FontLoader } from 'three/addons/loaders/FontLoader.js' |
4 | 4 |
|
5 |
| -import { FilmShader } from "three/addons/shaders/FilmShader.js"; |
6 |
| -import { ShaderPass } from "three/addons/postprocessing/ShaderPass.js"; |
| 5 | +import { FilmShader } from 'three/addons/shaders/FilmShader.js' |
| 6 | +import { ShaderPass } from 'three/addons/postprocessing/ShaderPass.js' |
7 | 7 |
|
8 |
| -import fontJson from "../assets/fonts/monsieur.json"; |
| 8 | +import fontJson from '../assets/fonts/monsieur.json' |
9 | 9 |
|
10 |
| -let shader; |
| 10 | +let shader |
11 | 11 |
|
12 | 12 | let upDir = true
|
13 | 13 |
|
14 | 14 | class Credits {
|
15 |
| - constructor() { |
16 |
| - this.scene = new THREE.Scene(); |
17 |
| - this.scene.background = new THREE.Color(0x000); |
| 15 | + constructor () { |
| 16 | + this.scene = new THREE.Scene() |
| 17 | + this.scene.background = new THREE.Color(0x000) |
18 | 18 |
|
19 | 19 | this.camera = new THREE.PerspectiveCamera(
|
20 | 20 | 70,
|
21 | 21 | window.innerWidth / window.innerHeight,
|
22 | 22 | 1,
|
23 | 23 | 100
|
24 |
| - ); |
25 |
| - this.camera.position.set(-73, -3, 80); |
| 24 | + ) |
| 25 | + this.camera.position.set(-73, -3, 80) |
26 | 26 |
|
27 | 27 | shader = new ShaderPass(FilmShader)
|
28 |
| - shader.uniforms["nIntensity"].value = 1; |
| 28 | + shader.uniforms.nIntensity.value = 1 |
29 | 29 |
|
30 |
| - shader.uniforms["sCount"].value = 30; |
31 |
| - shader.uniforms["sIntensity"].value = 1; |
| 30 | + shader.uniforms.sCount.value = 30 |
| 31 | + shader.uniforms.sIntensity.value = 1 |
32 | 32 |
|
33 |
| - const loader = new FontLoader(); |
| 33 | + const loader = new FontLoader() |
34 | 34 |
|
35 |
| - const font = loader.parse(fontJson); |
36 |
| - const geometry = new TextGeometry("Code: mz\nCode: rjuho\nCode: ileska", { |
37 |
| - font: font, |
| 35 | + const font = loader.parse(fontJson) |
| 36 | + const geometry = new TextGeometry('Code: mz\nCode: rjuho\nCode: ileska', { |
| 37 | + font, |
38 | 38 | size: 3,
|
39 | 39 | height: 0.5,
|
40 | 40 | curveSegments: 0.00001,
|
41 | 41 | bevelEnabled: true,
|
42 | 42 | bevelSize: 0.1,
|
43 |
| - bevelThickness: 0.1, |
44 |
| - }); |
| 43 | + bevelThickness: 0.1 |
| 44 | + }) |
45 | 45 |
|
| 46 | + const material = new THREE.MeshPhongMaterial({ color: 0x888888 }) |
| 47 | + const mesh = new THREE.Mesh(geometry, material) |
| 48 | + mesh.position.x = -5 |
| 49 | + mesh.position.y = 5 |
46 | 50 |
|
47 |
| - const material = new THREE.MeshPhongMaterial({ color: 0x888888 }); |
48 |
| - const mesh = new THREE.Mesh(geometry, material); |
49 |
| - mesh.position.x = -5; |
50 |
| - mesh.position.y = 5; |
| 51 | + this.scene.add(mesh) |
51 | 52 |
|
52 |
| - this.scene.add(mesh); |
53 |
| - |
54 |
| - this.scene.add(new THREE.HemisphereLight(0xbbbbbb, 0x777777, 20)); |
| 53 | + this.scene.add(new THREE.HemisphereLight(0xbbbbbb, 0x777777, 20)) |
55 | 54 | }
|
56 | 55 |
|
57 |
| - get getCamera() { |
58 |
| - return this.camera; |
| 56 | + get getCamera () { |
| 57 | + return this.camera |
59 | 58 | }
|
60 | 59 |
|
61 |
| - get getScene() { |
62 |
| - return this.scene; |
| 60 | + get getScene () { |
| 61 | + return this.scene |
63 | 62 | }
|
64 | 63 |
|
65 |
| - get getEffectShaders() { |
66 |
| - return [shader]; |
| 64 | + get getEffectShaders () { |
| 65 | + return [shader] |
67 | 66 | }
|
68 | 67 |
|
69 |
| - animate() { |
70 |
| - shader.uniforms["sIntensity"].value = Math.sin(Date.now() / 50) |
| 68 | + animate () { |
| 69 | + shader.uniforms.sIntensity.value = Math.sin(Date.now() / 50) |
71 | 70 |
|
72 | 71 | if (upDir) {
|
73 |
| - shader.uniforms["sCount"].value += 0.1; |
| 72 | + shader.uniforms.sCount.value += 0.1 |
74 | 73 | } else {
|
75 |
| - shader.uniforms["sCount"].value -= 0.5; |
| 74 | + shader.uniforms.sCount.value -= 0.5 |
76 | 75 | }
|
77 | 76 |
|
78 |
| - if (shader.uniforms["sCount"].value < 10) { |
| 77 | + if (shader.uniforms.sCount.value < 10) { |
79 | 78 | upDir = true
|
80 | 79 | }
|
81 | 80 |
|
82 |
| - if (shader.uniforms["sCount"].value > 100) { |
| 81 | + if (shader.uniforms.sCount.value > 100) { |
83 | 82 | upDir = false
|
84 | 83 | }
|
85 |
| - |
86 | 84 | }
|
87 | 85 | }
|
88 | 86 |
|
89 |
| -export { Credits }; |
| 87 | +export { Credits } |
0 commit comments