.[ ČeskéHry.cz ].
Roll-ball

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Inkubátor
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
japaja



Založen: 07. 02. 2012
Příspěvky: 106

PříspěvekZaslal: 24. březen 2014, 19:19:05    Předmět: Roll-ball Odpovědět s citátem

Zdravim tu do tejto časti fora som nikdy ničim neprispel to čo sem hodim v podstate ešte nema ani menu zrobene keďže riešim ovladanie guli/koule

"Vo co go":Už skôr som chcel zrobiť niečo hratelne skušal som VHE-(editor pre cs 1.6,L4D2 a ine), CryEngine 1/2/3, gamemaker, opengl a unity

ostal som pri unity keďže je toho na YT dosť veľa a nenašiel som to a tak by som vas tuna pritomnych chcel trošku otravovať s mojim aktualnym problemom a možno nebude jediny Very Happy

O Hre: Tuto jednoduchu myšlienku som dostal keď som robil tutorial na oficialnej stranke unity a bolo to otom ako pozbierať peniaze a hra sa skonči no ja som si povedal že to trochu upravim rožširim a bude to trochu ine určite nie jedinečne keďže takych hier je kopu v odkaze prikladam ako tak hrateľnu verziu. O čo upravene to bude, v každom levely sa spoznate s novou prekažkou a budete ju musieť prekonať napriklad ako točiaca sa palica a ine veci.


O probleme: Snažim sa vyriešiť skakanie guli/koule (prikladam aj script) guľa sama o sebe sa toči pohybom no a ja by som chcel že keď stlačim medzernik tak guľa nadskoči no problem nastava vtedy keď medzernik stlačim 20x za sebou tak guľa je niekde preč.. a chcel by som tomu zamedziť jedna vec čo ma napadla bolo použiť iny objekt na guľu/koule a zamedziť vyššiemu skoku no ajtak to nevyzera pekne a teoreticke riešenie vidim take že keď guľa/koule je na zemi skakanie je aktivne takzvane "true;" a keď je vo vzduchu a nedotyka sa podlahy tak je "false;" no s tymto neviem pohnuť


kód:
using UnityEngine;
using System.Collections;

public class Movement : MonoBehaviour
{
   public float gravity;
   public float speed;
   public float jumpSpeed;
   
   
   void FixedUpdate ()
   {
      float moveHorizontal = Input.GetAxis("Horizontal");
      float moveVertical = Input.GetAxis("Vertical");
      
      Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
      
      rigidbody.AddForce(movement * speed * Time.deltaTime);
      
      if (Input.GetButtonDown("Jump"))
      {
         rigidbody.velocity = new Vector3(0, jumpSpeed, 0);
      }
      
   }
   
}


Download:http://uloz.to/x5td1NVr/test-kocky-zip

Budem rad ak mi niekto s tym pomôže lebo na YT som našiel navody no neni to prave ono čo by na to pasovalo.
_________________
skype: dead.lol1
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
McMagic



Založen: 06. 08. 2012
Příspěvky: 615

PříspěvekZaslal: 25. březen 2014, 15:07:04    Předmět: Odpovědět s citátem

Dej si tam bool (public ci private dle toho jak sni budes pracovat) co bude hlidat pokud koule skace.

viz ukazka.

Logicky musis jeste itsJump dat zase na false az koule dopadne na zem ci splni podminku pro dalsi skok.

kód:

using UnityEngine;
using System.Collections;

public class Movement : MonoBehaviour
{
   public float gravity;
   public float speed;
   public float jumpSpeed;

   public bool itsJump = false;
   
   
   void FixedUpdate ()
   {
      float moveHorizontal = Input.GetAxis("Horizontal");
      float moveVertical = Input.GetAxis("Vertical");
       
      Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
       
      rigidbody.AddForce(movement * speed * Time.deltaTime);
     

      if(!itsJump){ 
          if (Input.GetButtonDown("Jump"))
         {
              itsJump = true;
              rigidbody.velocity = new Vector3(0, jumpSpeed, 0);
             
         }
      }

   }
   
}

_________________


http://www.mcmagic-productions.com/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
japaja



Založen: 07. 02. 2012
Příspěvky: 106

PříspěvekZaslal: 25. březen 2014, 15:49:10    Předmět: Odpovědět s citátem

ale ved logicky ked to dopadne tak by sa to malo zopakovat nie?
_________________
skype: dead.lol1
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
McMagic



Založen: 06. 08. 2012
Příspěvky: 615

PříspěvekZaslal: 25. březen 2014, 16:13:07    Předmět: Odpovědět s citátem

japaja napsal:
ale ved logicky ked to dopadne tak by sa to malo zopakovat nie?


Musíš si hlídat dopad a pak dat zase skok na true.

No a pak záleží co s tím přesně chceš dělat;)

Můžeš nastavit limit na max výšku atd. (vyrušit pak další skok)

Nebo pokud chceš aby po dopadu ještě poskočila?

Je x možností co s tím můžeš provést - vždy se ale musíš zachytit nějakého argumentu co to bude hlídat/omezovat určovat pravidla.
_________________


http://www.mcmagic-productions.com/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
japaja



Založen: 07. 02. 2012
Příspěvky: 106

PříspěvekZaslal: 25. březen 2014, 16:15:29    Předmět: Odpovědět s citátem

ved toto praveže neviem keďže unity dokumentacia o bool,if veľa nehovori
_________________
skype: dead.lol1
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
]semo[



Založen: 29. 07. 2007
Příspěvky: 1469
Bydliště: Telč

PříspěvekZaslal: 25. březen 2014, 16:22:22    Předmět: Odpovědět s citátem

No, hlavně by měla vyskočit, jen když se dotýká země ne? Jako analogie s nějakým panáčkem, který se odrazí nohama. Takže bys tam měl přisat test, jestli je koule a zemi (if position.y...). Samotný skok děláš myslím správně nastavením rychlosti, ale lepší by možná bylo použít Rigidbody.AddForce s ForceMode.VelocityChange . Je to trochu matoucí, že to mají ve funkci AddForce, protože velocity neni force, ale myslím, že to bude dělat, co potřebuješ.
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
japaja



Založen: 07. 02. 2012
Příspěvky: 106

PříspěvekZaslal: 25. březen 2014, 16:44:10    Předmět: Odpovědět s citátem

praveže aj to som skušal no ja programovanie neovladam to znamena keď mi poviete nech si urobim podmienku tak akurat wut Very Happy
_________________
skype: dead.lol1
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
]semo[



Založen: 29. 07. 2007
Příspěvky: 1469
Bydliště: Telč

PříspěvekZaslal: 25. březen 2014, 16:50:06    Předmět: Odpovědět s citátem

Nojo, tak to je potom těžký :).
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
japaja



Založen: 07. 02. 2012
Příspěvky: 106

PříspěvekZaslal: 25. březen 2014, 16:52:26    Předmět: Odpovědět s citátem

ale nejaky navod ako sa presne tieto veci mechanizmy naucit by nezaskodil Very Happy
_________________
skype: dead.lol1
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
japaja



Založen: 07. 02. 2012
Příspěvky: 106

PříspěvekZaslal: 25. březen 2014, 16:55:57    Předmět: Odpovědět s citátem

ha! asi som na to prišiel čo tak na spodok hodiť


void OnCollisionEnter("nazovtej veci kde to ma spadnut aby bolo true")
itsJump=true;
_________________
skype: dead.lol1
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
]semo[



Založen: 29. 07. 2007
Příspěvky: 1469
Bydliště: Telč

PříspěvekZaslal: 25. březen 2014, 16:57:43    Předmět: Odpovědět s citátem

Nejlepší je, posadit se k tomu na nějaký čas a velmi bolestivou cestou zkoušet, přemýšlet a číst dokumentaci. S googlem a diskuzema jako šafránu. Hledat spíš už velmi konkrétní věci, ne hesla typu "how to make jump in c sharp". To se ti neposmívám, vím, že přirozená lenost k tomu svádí. Vsadím se, že když tomu věnuješ dnešní večer, tak zítra budeš moudřejší a kde kdo rád odpoví na tvé konkrétní dotazy.

EDIT: no vida! A to je teprv začátek :) Přeju hodně radosti z těchto dílčích úspěchů :).
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
japaja



Založen: 07. 02. 2012
Příspěvky: 106

PříspěvekZaslal: 25. březen 2014, 17:02:55    Předmět: Odpovědět s citátem

a nasiel som si v tom chybu lebo ked dam zase treu porusim tym podmienku co bola prva false a kedze to bolo false mohol som zrobit skok a to co som sem napisal som si to tym zablokoval takze by malo byt

void OnCollisionEnter()
{
itsJump=false;
}
_________________
skype: dead.lol1
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
McMagic



Založen: 06. 08. 2012
Příspěvky: 615

PříspěvekZaslal: 25. březen 2014, 17:36:10    Předmět: Odpovědět s citátem

Smile

no dle všeho jsi ten script nekde nasel na netu - ze jo?

A nevis vlastne jak moc extra funguje (viz i ten OnCollisionEnter).

Musis zacit polopate a urcit si logiku co chces proc a jak.

tj. mas kouli.
ta ma po zmacknuti "space" poskocit a dopadnout.
ale nesmi poskocit kdyz uz skace

takze kdyz nepouzijes kolize ani rigidbody atd. ale jen cisty objekt a udelas to prasacky, ale tak ze pochopis o co jde


Zde je rychlo kod - ukaze ti co jak funguje - je to prasarna, ale ukazuje jak funguje if a bool mel by jsi z toho pochopit zaklad;)

Logicky rigidbody a gravitace pak za tebe dela x veci a nemusis ridit pohyb tak jako nize ve scriptu, ale je to ukazka toho co to vlastne dela a jak si urcovat podminky.

(viz i nase PM komunikace, kdy jsem pochopil ze jsi v zacatcich;) ) musis hledat na googlu kolem unity je tam toho spousta. Ale hlavni je si urcit zakladni logiku a vedet co proc jak;)

kód:

using UnityEngine;
using System.Collections;

public class test01 : MonoBehaviour {
   
   public GameObject koule;//objekt koule
   public bool kouleSkace = false;//bool
   public Transform kouleTransform;//transform koule
   public Vector3 koulePozice;//v3 pozice koule
   public float maxSkokVyska = 5f;//maximalni vyska Y pro skok
   public float minSkokVyska = 0f;//hladina Y zeme (virtualni)
   public bool skokDosahlMax = false;
   
   // Use this for initialization
   void Start () {
         koule = this.gameObject;//nastavis objekt
         kouleTransform = this.gameObject.transform;//nastavis transform objektu
      //fixnes si kouli na zem
      kouleTransform.position = new Vector3(0f,minSkokVyska,0f);
      
   }
   
   // Update is called once per frame
   void Update () {
      //hlidas pozici
        koulePozice = kouleTransform.position;
      //detekujes zdali skok je false
      if(!kouleSkace){
         if ( Input.GetKeyDown("space") ) {
            //nastavis skok na true
            kouleSkace = true;
         }   
      }
      //detekujes zdali skok je true
      if(kouleSkace){
         //POKUD KOULE NEDOSAHLA MAX
         if(!skokDosahlMax){
            if(koulePozice.y < maxSkokVyska){
               kouleTransform.position += new Vector3(0f,0.2f,0f);   //pohyb nahoru
            }else{
               skokDosahlMax = true;//skok je na maximu   
            }   
         }
         //kdyz koule dosahne MAX
         if(skokDosahlMax){
            if(koulePozice.y > minSkokVyska){
               kouleTransform.position -= new Vector3(0f,0.2f,0f);   //pohyb dolu
            }else{
               //koule dopadla na ZEM
               kouleSkace = false;   
               skokDosahlMax = false;
            }   
         }
         //
         
      }   
   }
}



_________________


http://www.mcmagic-productions.com/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ladis



Založen: 18. 09. 2007
Příspěvky: 1483
Bydliště: u Prahy

PříspěvekZaslal: 25. březen 2014, 19:39:38    Předmět: Odpovědět s citátem

japaja napsal:
ale nejaky navod ako sa presne tieto veci mechanizmy naucit by nezaskodil Very Happy

Myslíš návod na if a bool?

japaja napsal:
ved toto praveže neviem, keďže unity dokumentacia o bool, if veľa nehovori

Tak googli pro použitý programovací jazyk, v tomhle případě asi C#: if, bool
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Inkubátor Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna