• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Co mam Źle w tym kodzie

Cloud VPS
0 głosów
523 wizyt
pytanie zadane 21 grudnia 2022 w C# przez Mrevus Nowicjusz (120 p.)
edycja 21 grudnia 2022 przez Arkadiusz Waluk

Witam,

Robię grę w Unity w C#  i mam taki problem robię skrypt na poruszanie się i skakanie oraz na maksymalną ilość skoków wynosząca 2 i mam pytanie co jest Źle w tym kodzie

using System.Collections;

using System.Collections.Generic;

using UnityEngine;



public class Player2 : MonoBehaviour

{



    public float speed;

    public float jumpMultipier;

    private Rigidbody2D rb2d;

    private float x_move;

    private int jumpsleft;

    private bool canJump;



    // Start is called before the first frame update

    void Start()

    {

        rb2d = GetComponent<Rigidbody2D>();

    }



    // Update is called once per frame

    void Update()

    {

        x_move = Input.GetAxis("Horizontal");

        rb2d.velocity = new Vector3(x_move * speed, rb2d.velocity.y, rb2d.velocity.x);

        if(Input.GetKeyDown(KeyCode.Space) && jumpsleft > 0)

        {

            rb2d.AddForce(Vector3.up * jumpMultipier);

            jumpsleft--;

        }

 

 

    }

    private void OnCollisionEnter(Collision collision)

    {

        jumpsleft = 2;

    }

}
1
komentarz 21 grudnia 2022 przez SzkolnyAdmin Szeryf (90,110 p.)

1. Wstaw kod w bloczek przeznaczony do tego celu.

2. Co ten kod ma robić? Inaczej trudno stwierdzić, co jest w nim nie tak.

komentarz 22 grudnia 2022 przez Mrevus Nowicjusz (120 p.)
Ad1 co to jest ten kod bo tak średnio rozumiem ten skrypt

robiłem z poradnika ale nie działa tylko chodzenie a skakanie wogole

Ad2 ten kod ma pozwolić chodzić,skakać,oraz ustawić maksymalną ilość skoków do 2

1 odpowiedź

0 głosów
odpowiedź 23 grudnia 2022 przez VBService Ekspert (256,600 p.)

W tym kawałku kodu, który podałeś, używasz m. in. zmienne

x_movespeed

rb2d.velocity = new Vector3(x_move * speed ...);

jumpsleftjumpMultipier

        if(Input.GetKeyDown(KeyCode.Space) && jumpsleft > 0) 
        { 
            rb2d.AddForce(Vector3.up * jumpMultipier);
            ...
        }

 

 a nie masz zainicjowanych dla nich wartości "początkowych"

    public float speed;
 
    public float jumpMultipier;
 
    private Rigidbody2D rb2d;
 
    private float x_move;
 
    private int jumpsleft;
 
    private bool canJump;
 
 
 
    // Start is called before the first frame update
 
    void Start()
 
    {
 
        rb2d = GetComponent<Rigidbody2D>();
 
    }

 

więc domyślnie "wszystkie" mają wartość 0 (zero - bo int i float)

Podobne pytania

0 głosów
1 odpowiedź 411 wizyt
0 głosów
2 odpowiedzi 828 wizyt
pytanie zadane 29 października 2017 w C i C++ przez maksymilian467 Nowicjusz (160 p.)
0 głosów
1 odpowiedź 136 wizyt

93,456 zapytań

142,451 odpowiedzi

322,721 komentarzy

62,837 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...