Vývoj her Unity 3D - 2D grafik – Startupy – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vývoj her Unity 3D - 2D grafik – Startupy – Fórum – Programujte.comVývoj her Unity 3D - 2D grafik – Startupy – Fórum – Programujte.com

 

jame_5810
Duch
14. 8. 2016   #1
-
0
-

Ahoj,
jsem studentem vysoké školy a vývojem her se, již nějakou dobu zabývam. V hlavě mám pár napadů a konceptů na mobilní hry. Jsem programátor a pracuji v Unity 3D. Rád bych potkal další lidi se stejným zájmem a zápalem. Společně můžeme vytvořit něco většího a věřím, že tituly budou úspěšný. Prozatím nmůžu nabídnout finanční odměnu, pouze % z výdělku. Takže k věci.

Hledám 2D grafika, který sdílí nadšení pro vývoj her. Jedná se o jednoduché sprity (pozadí, postavy, překážky atd.). Ja jsem jako grafik nepoužitelný [;)] , ale vynahrazuji to v programování. Pokud jsem tě zaujal určitě napiš, můžeme se pobavit o případně spolupráci a kdoví, třeba budeme stát u zrodu velkého herního studia [:)]

Nahlásit jako SPAM
IP: 2a00:1028:9199:c3a6:d12b:...–
juraj1750
Návštěvník
23. 4. 2017   #2
-
0
-

Zdravím

chcem sa spýtať či neviete poradiť mám v UNITY3D javascript nadefinovanú premennú

 var timer : float;

Chcem docieliť,keď kocka dojde k bodu 2,tak sa zastaví napr na 2 sekundy,potom dojde k bodu 3 tam sa tiež zastaví na 2s a tak ďalej

Tu je kód

if(curindex==2){

transform.Translate(Vector3.zero);
	timer -= Time.deltaTime;transform.Translate(Vector3.zero);
if(timer <= 0){
timer = 0;
transform.Translate(Vector3(0, 0, speed * Time.deltaTime));	

	}
}else if (curindex==3){curindex=3;
transform.Translate(Vector3.zero);
timer=2;
	timer -= Time.deltaTime;
Debug.Log(timer);
		transform.Translate(Vector3.zero);
	


if(timer <= 0){
timer = 0;
transform.Translate(Vector3(0, 0, speed * Time.deltaTime));	

	}
	
}else{

transform.Translate(Vector3(0, 0, speed * Time.deltaTime));	
}

Problém je taký,že keď príde k bodu 3
curindex==3 tak
timer=2; timer -= Time.deltaTime; tak to správne nepočíta funkcia sekundy

Vdaka
 

Nahlásit jako SPAM
IP: 88.212.36.–
MilanL+1
Grafoman
28. 4. 2017   #3
-
0
-

#2 juraj175
Ahoj,

domnívám se, že problém je v řádce Timer = 2; , kdy nastavuješ výchozí hodnotu při každém cyklu té update procedury, mělo by být nastaveno vně, stejně jako přiřazení Currindex=3.

Nahlásit jako SPAM
IP: 91.139.9.–
juraj1750
Návštěvník
29. 4. 2017   #4
-
0
-

Zdravím

vyskúšal som aj

var timer : float;

aj takýto zápis

var timer : float = 2;

a nepočíta to k nule

if(curindex==2 ){
timer = 2.0 ; 
timer -= Time.deltaTime;
transform.Translate(Vector3.zero);

if(timer <= 0){
timer = 0;
transform.Translate(Vector3(0, 0, speed * Time.deltaTime));	

	}
}
Nahlásit jako SPAM
IP: 88.212.36.–
MilanL+1
Grafoman
2. 5. 2017   #5
-
0
-

#4 juraj175

ahoj, ale vždyt jsi psal, že ta první část funguje ne? proč jsi jí měnil.

Tak jak to máš se ti VŽDY nastaví znovu na 2 a do 0 to nedojde. Nastavování Timer = 2 musíš mít umístěné jinde bud v události příchodu k danému bodu, nebo v obsluze podmínky timer<=0, kde nastavíš timer pro další krok.

if(curindex==2 ){

  timer = 2.0 ;     // toto je špatně nastaví timer při každém 
průchodu a s -deltatime (čas od posledního vykreslení - v řádech 
desítek milisekund tzn 0.0xx, v rámci 2s může jít o desítky průchodů 
Update procedurou a tato řádka hodnotu timer opakovaně nastaví na 2),
tak ti to k 0 nedojde, mělo by být nastaveno tam, kde se testuje, 
že kočka došla k bodu 2 nebo 3, pokud ten test je v rámci curindex, 
mohlo by to tu být, ale s podmínkou timer=0.
timer -= Time.deltaTime; 
transform.Translate(Vector3.zero); 
if(timer <= 0){ 
timer = 0; 
transform.Translate(Vector3(0, 0, speed * Time.deltaTime)); 
} }
 

Zjednodušení Update procedury

if(timer<=0){      -kočka jde 
                    (na jednoduché řízení, lze použít jen timer)

  transform.Translate(Vector3(0, 0, speed * Time.deltaTime));

  - zde případně v afterupdate Eventu, by měl být test kam kočka 
    došla tam nastavovat Timer, když dojde k daným bodům

}
else{              -kočka stojí	
  timer -= Time.deltaTime;
  transform.Translate(Vector3.zero);
}                  -není nutno testovat Timer otestuje se při dalším 
                    průchodu Updatem

 
Nahlásit jako SPAM
IP: 91.139.9.–
juraj1750
Návštěvník
2. 5. 2017   #6
-
0
-

#5 MilanL
Upravil som to takto,ale keď príde k bodu 3  tak sekundy sa nepripočitaj k  timer

if(curindex==2 ){
 timer -= Time.deltaTime;
//timer -= Time.deltaTime;
transform.Translate(Vector3.zero);

if(timer <= 0){
timer = 0.0;
transform.Translate(Vector3(0, 0, speed * Time.deltaTime));	

	} 
}else if (curindex==3 ){ 

	
	if(timer<=0){      

  transform.Translate(Vector3(0, 0, speed * Time.deltaTime));
}
else{            
  timer -= Time.deltaTime;
  transform.Translate(Vector3.zero);
}                  
       
                        }	
	
	
else{


transform.Translate(Vector3(0, 0, speed * Time.deltaTime));	
}
Nahlásit jako SPAM
IP: 88.212.36.–
MilanL -- domova
~ Anonymní uživatel
1 příspěvek
2. 5. 2017   #7
-
0
-

#6 juraj175
máš tam odčítání do 0, tzn někde ten timer musíš nastavit, nevím, kde nastavuješ ten pro bod 2, pro bod 3 ho případně můžeš nastavit v obsluze bodu 2 když dojde do 0, ted tam máš nastavení na 0 tak to změnit na čas pro 3, každopádně nechápu proč trváš na tom tvým krkolomným nepřehledným kodu, chování funkce je pro oba body stejné, jen někde podle podmínky nastavíš ten timer. 

if(curindex==2 ){
 timer -= Time.deltaTime;
transform.Translate(Vector3.zero);

if(timer <= 0){     
timer = X.X;        // zde nastavit čas pro další bod

transform.Translate(Vector3(0, 0, speed * Time.deltaTime));	

	} 
}else if (curindex==3 ){ 
	
	if(timer<=0){      

  transform.Translate(Vector3(0, 0, speed * Time.deltaTime));
}
else{            
  timer -= Time.deltaTime;
  transform.Translate(Vector3.zero);
  }                      
}	

else{

transform.Translate(Vector3(0, 0, speed * Time.deltaTime));	
}

Jinak principiálně to není správně řešená procedura update, ta by měla být co nejjednodušší.


Nahlásit jako SPAM
IP: 185.112.167.–
juraj1750
Návštěvník
2. 5. 2017   #8
-
0
-

#7 MilanL -- domova
Premennú timer definujem takto

var timer : float ;

if(curindex==2 ){
 timer -= Time.deltaTime;
//timer -= Time.deltaTime;
transform.Translate(Vector3.zero);

if(timer <= 0){
timer = 0.0;
transform.Translate(Vector3(0, 0, speed * Time.deltaTime));	

	} 
}else if (curindex==3 ){ 

	
	if(timer<=0){      

  transform.Translate(Vector3(0, 0, speed * Time.deltaTime));
}
else{            
  timer -= Time.deltaTime;
  transform.Translate(Vector3.zero);
}                  
       
                        }	
	
	
else{


transform.Translate(Vector3(0, 0, speed * Time.deltaTime));	
}


Ak dojde kocka k bodu 2 tak cas počíta správne k nule, ale ak dojde k bodu 3 tak sa nic nedej.Tmten predosli kod odpocitava cas ale nedôjde k nule.Mam dať tu celý kód?

Nahlásit jako SPAM
IP: 88.212.36.–
MilanL+1
Grafoman
3. 5. 2017   #9
-
0
-

#8 juraj175
na to se neptám, to je v pořádku, jde o to kde nastavuješ hodnoty, někde jí musíš nastavovat, pro bod 2 jsi jí někde nastavil, tak jí pak zase musíš někde nastavit znovu pro bod 3. Uvolnil jsem email, tak mi to tam, když tak hoď, případně mi napiš kontakty pokud máš třeba FB, Skype, ICQ, a kdy míváš čas na to to řešit.

Jen tak mimochodem jaké je chování kočky v bodu 3 jde dál nebo furt stojí?

Jinak postavil bych průběh u curindex 3 stejně jako u 2 (jen pro přehlednost), tzn nejdřív zero transformaci a odečtení od timeru a až za to tu podmínku na timer <=0.

Zkus si dát na začátek obsluhy curindex==3 debug.log timeru to ti ukáže s jakou hodnotou tam vstupuješ.

Nahlásit jako SPAM
IP: 91.139.9.–
juraj1750
Návštěvník
5. 5. 2017   #10
-
0
-

#9 MilanL
dakujem

Nahlásit jako SPAM
IP: 88.212.36.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

Podobná vlákna

Unity — založil Krtek132

Unity — založil Kalgys

Unity 3D — založil Peter

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý