diff --git a/public/models/misc/super_mario_bros_coin-transformed.glb b/public/models/misc/super_mario_bros_coin-transformed.glb
new file mode 100644
index 0000000..9d2ad8a
Binary files /dev/null and b/public/models/misc/super_mario_bros_coin-transformed.glb differ
diff --git a/public/models/misc/super_mario_bros_coin.glb b/public/models/misc/super_mario_bros_coin.glb
new file mode 100644
index 0000000..774a141
Binary files /dev/null and b/public/models/misc/super_mario_bros_coin.glb differ
diff --git a/src/components/Experience.jsx b/src/components/Experience.jsx
index 93b063e..23e9e06 100644
--- a/src/components/Experience.jsx
+++ b/src/components/Experience.jsx
@@ -22,6 +22,7 @@ import { Banana } from "./models/items/Banana_peel_mario_kart";
import { ItemBox } from "./models/misc/Mario_kart_item_box";
import { useStore } from "./store";
import { Shell } from "./models/items/Mario_shell_red";
+import { Coin } from "./models/misc/Super_mario_bros_coin";
export const Experience = () => {
const onCollide = (event) => {
@@ -36,11 +37,13 @@ export const Experience = () => {
{/* */}
-
+
+
+
{bananas.map((banana) => (
{
useFrame(({ pointer, clock }, delta) => {
const time = clock.getElapsedTime();
if (!body.current && !mario.current) return;
- actions.setBodyPosition(vec3(body.current.translation()));
- actions.setBodyRotation(body.current.rotation());1
engineSound.current.setVolume(currentSpeed / 300 + 0.2);
engineSound.current.setPlaybackRate(currentSpeed / 10 + 0.1);
jumpSound.current.setPlaybackRate(1.5);
@@ -219,11 +217,12 @@ export const PlayerController = () => {
);
// JUMPING
- if (jumpPressed && isOnFloor.current && !jumpIsHeld.current) {
+ if (jumpPressed && isOnGround && !jumpIsHeld.current) {
jumpForce.current += 10;
isOnFloor.current = false;
jumpIsHeld.current = true;
jumpSound.current.play();
+ setIsOnGround(false);
if (jumpSound.current.isPlaying) {
jumpSound.current.stop();
@@ -234,7 +233,7 @@ export const PlayerController = () => {
if (isOnFloor.current && jumpForce.current > 0) {
landingSound.current.play();
}
- if (!isOnFloor.current && jumpForce.current > 0) {
+ if (!isOnGround && jumpForce.current > 0 ) {
jumpForce.current -= 1 * delta * 144;
}
if (!jumpPressed) {
@@ -462,10 +461,6 @@ export const PlayerController = () => {
actions.useItem();
}
- if(item) console.log(item)
-
- // console.lowg(body.current.translation())
-
});
@@ -485,6 +480,11 @@ export const PlayerController = () => {
mass={3}
onCollisionEnter={({other}) => {
isOnFloor.current = true;
+ setIsOnGround(true);
+ }}
+ onCollisionExit={({other}) => {
+ isOnFloor.current = false;
+ setIsOnGround(false);
}}
/>
diff --git a/src/components/models/misc/Super_mario_bros_coin.jsx b/src/components/models/misc/Super_mario_bros_coin.jsx
new file mode 100644
index 0000000..4153177
--- /dev/null
+++ b/src/components/models/misc/Super_mario_bros_coin.jsx
@@ -0,0 +1,37 @@
+/*
+Auto-generated by: https://github.com/pmndrs/gltfjsx
+Command: npx gltfjsx@6.2.16 .\super_mario_bros_coin.glb --shadows --transform
+Files: .\super_mario_bros_coin.glb [48.84KB] > C:\Users\mouli\dev\r3f-vite-starter\public\models\misc\super_mario_bros_coin-transformed.glb [6.12KB] (87%)
+Author: BranHelsing (https://sketchfab.com/BranHelsing)
+License: CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)
+Source: https://sketchfab.com/3d-models/super-mario-bros-coin-aa97e093847a439f9feb064134813806
+Title: Super Mario Bros Coin
+*/
+
+import React, { useEffect, useRef } from 'react'
+import { useGLTF, useAnimations } from '@react-three/drei'
+import { useFrame } from '@react-three/fiber'
+
+export function Coin(props) {
+ const group = useRef()
+ const { nodes, materials, animations } = useGLTF('./models/misc/super_mario_bros_coin-transformed.glb')
+ const { actions } = useAnimations(animations, group)
+
+ useFrame((state, delta) => {
+ group.current.rotation.y += 4 * delta
+ })
+
+ return (
+
+
+
+
+
+
+
+
+
+ )
+}
+
+useGLTF.preload('./models/misc/super_mario_bros_coin-transformed.glb')