import { Canvas } from "@react-three/fiber"; import { OrbitControls, PerspectiveCamera, Sky } from "@react-three/drei"; import * as THREE from "three"; import React, { useEffect, useRef, useState } from "react"; import Ocean from "../components/3d/Ocean"; import Axes from "../components/3d/Axes"; import Character from "../components/3d/Character"; import Floor from "../components/3d/Floor"; import Marker from "../components/3d/Marker"; import Modal from "../components/Modal"; import { randInt } from "three/src/math/MathUtils.js"; export default function GamePage() { const [stateModal, setStateModal] = useState("none" as "none" | "flex"); const [questionIndex, setQuestionIndex] = useState(0); const QuestionList = [ // Ensemble de questions sur la polution des océans // {question:string, reponse_idx:int, choix:[string, string, string, string]} { question: "Quel est le plus grand océan du monde ?", reponse_idx: 1, choix: ["Océan Atlantique", "Océan Pacifique", "Océan Indien", "Océan Arctique"] }, { question: "Comment s'appelle les continents de plastique dans les océans ?", reponse_idx: 2, choix: ["Plastico", "Plastiland", "Plastiques", "Plastiques"] }, { question: "Quel est le nom de la grande masse d'eau salée qui recouvre la majorité de la surface de la Terre ?", reponse_idx: 3, choix: ["Mer", "Lac", "Océan", "Rivière"] }, { question: "Quel est l'océan le plus froid ?", reponse_idx: 0, choix: ["Océan Arctique", "Océan Antarctique", "Océan Pacifique", "Océan Atlantique"] }, { question: "Quel est l'océan le plus chaud ?", reponse_idx: 1, choix: ["Océan Arctique", "Océan Antarctique", "Océan Pacifique", "Océan Atlantique"] }, { question: "Quel est l'océan le plus profond ?", reponse_idx: 1, choix: ["Océan Arctique", "Océan Antarctique", "Océan Pacifique", "Océan Atlantique"] }, { question: "Quel est l'océan le plus grand ?", reponse_idx: 2, choix: ["Océan Arctique", "Océan Antarctique", "Océan Pacifique", "Océan Atlantique"] } ] const [valides, setValides] = useState([false, false, false, false, false, false]); const [markerIndex, setMarkerIndex] = useState(0); const askQuestion = (markerIndex: number) => { setQuestionIndex(randInt(0, QuestionList.length - 1)); setStateModal("flex"); setMarkerIndex(markerIndex); } const MakerList = [ { position: [0, -0.1, 0], onClick: () => askQuestion(0) }, // body { position: [-0.5, -0.1, 2.5], onClick: () => askQuestion(1) }, // left foot { position: [0.5, -0.1, 2.5], onClick: () => askQuestion(2) }, // right foot { position: [-1, -0.1, 1], onClick: () => askQuestion(3) }, // left hand { position: [1, -0.1, 1], onClick: () => askQuestion(4) }, // right hand { position: [0, -0.1, -1], onClick: () => askQuestion(5) }, // head ] // Win condition useEffect(() => { if (valides.every(valide => valide)) { } }, [valides]) console.log(stateModal, setStateModal); return (
Hint : Répondez correctement aux questions pour sauver le personnage
:Good Game : Bravo, vous avez sauvé le personnage
}