Spaces:
Running
Running
Update index.html
Browse files- index.html +40 -50
index.html
CHANGED
@@ -8,11 +8,10 @@
|
|
8 |
canvas { display: block; }
|
9 |
</style>
|
10 |
<script src="https://cdn.jsdelivr.net/npm/[email protected]/build/three.min.js"></script>
|
11 |
-
</head>
|
12 |
-
<body>
|
13 |
-
<canvas id="gameCanvas"></canvas>
|
14 |
-
|
15 |
<script>
|
|
|
|
|
|
|
16 |
var scene = new THREE.Scene();
|
17 |
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
|
18 |
camera.position.set(0, 20, 50);
|
@@ -30,58 +29,49 @@
|
|
30 |
var table = new THREE.Mesh(tableGeometry, tableMaterial);
|
31 |
table.position.set(0, -0.5, 0);
|
32 |
scene.add(table);
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
raycaster.setFromCamera(mouse, camera);
|
64 |
-
var intersects = raycaster.intersectObjects(cards, true);
|
65 |
-
if (intersects.length > 0) {
|
66 |
-
selectedCard = intersects[0].object;
|
67 |
-
var intersects = raycaster.intersectObject(table, true);
|
68 |
-
if (intersects.length > 0) {
|
69 |
-
var intersect = intersects[0];
|
70 |
-
offset.subVectors(selectedCard.position, intersect.point);
|
71 |
-
}
|
72 |
}
|
73 |
}
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
window.addEventListener('mousemove', onMouseMove, false);
|
78 |
-
window.addEventListener('mousedown', onMouseDown, false);
|
79 |
-
window.addEventListener('mouseup', onMouseUp, false);
|
80 |
function animate() {
|
81 |
requestAnimationFrame(animate);
|
82 |
renderer.render(scene, camera);
|
83 |
}
|
84 |
animate();
|
85 |
</script>
|
|
|
|
|
|
|
86 |
</body>
|
87 |
-
</html>
|
|
|
8 |
canvas { display: block; }
|
9 |
</style>
|
10 |
<script src="https://cdn.jsdelivr.net/npm/[email protected]/build/three.min.js"></script>
|
|
|
|
|
|
|
|
|
11 |
<script>
|
12 |
+
// AsyncTextureLoader definition here (if not imported as a module)
|
13 |
+
// Assuming AsyncTextureLoader is defined above or imported
|
14 |
+
|
15 |
var scene = new THREE.Scene();
|
16 |
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
|
17 |
camera.position.set(0, 20, 50);
|
|
|
29 |
var table = new THREE.Mesh(tableGeometry, tableMaterial);
|
30 |
table.position.set(0, -0.5, 0);
|
31 |
scene.add(table);
|
32 |
+
|
33 |
+
// Async Texture Loading
|
34 |
+
const asyncTextureLoader = new AsyncTextureLoader();
|
35 |
+
const textures = [];
|
36 |
+
const imageUrls = [
|
37 |
+
'the_hidden_city_known_as_civilization1.png',
|
38 |
+
'the_hidden_city_known_as_civilization2.png',
|
39 |
+
'the_hidden_city_known_as_civilization3.png',
|
40 |
+
'the_hidden_city_known_as_civilization4.png',
|
41 |
+
];
|
42 |
+
|
43 |
+
Promise.all(imageUrls.map(url => asyncTextureLoader.load(url)))
|
44 |
+
.then(loadedTextures => {
|
45 |
+
textures.push(...loadedTextures);
|
46 |
+
// Once all textures are loaded, create cards
|
47 |
+
createCards();
|
48 |
+
})
|
49 |
+
.catch(error => console.error('Error loading textures:', error));
|
50 |
+
|
51 |
+
function createCards() {
|
52 |
+
var cardGeometry = new THREE.BoxGeometry(5, 0.1, 7);
|
53 |
+
var cards = [];
|
54 |
+
// Generate and place cards
|
55 |
+
for (let i = 0; i < 52; i++) {
|
56 |
+
var texture = textures[i % 4]; // Cycle through the loaded textures
|
57 |
+
var cardMaterial = new THREE.MeshLambertMaterial({ map: texture });
|
58 |
+
var card = new THREE.Mesh(cardGeometry, cardMaterial);
|
59 |
+
card.position.set(Math.random() * 10 - 5, 0.1 * i, Math.random() * 10 - 5);
|
60 |
+
scene.add(card);
|
61 |
+
cards.push(card);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
}
|
63 |
}
|
64 |
+
|
65 |
+
// Interaction code (onMouseMove, onMouseDown, onMouseUp) remains the same
|
66 |
+
|
|
|
|
|
|
|
67 |
function animate() {
|
68 |
requestAnimationFrame(animate);
|
69 |
renderer.render(scene, camera);
|
70 |
}
|
71 |
animate();
|
72 |
</script>
|
73 |
+
</head>
|
74 |
+
<body>
|
75 |
+
<canvas id="gameCanvas"></canvas>
|
76 |
</body>
|
77 |
+
</html>
|