Operatori bitwise c#

Discussioni su qualunque linguaggio di programmazione o engine
Rispondi
Avatar utente
broli
Membro
Messaggi: 229
Iscritto il: 11/10/2013, 11:42
Specialità: cheater
Uso: GM:Studio 1.4 Pro
Contatta:

Operatori bitwise c#

Messaggio da broli »

salve ragazzi,
un po alla volta sto scrivendo qualche riga di codice in c# su unity.
nel codice sotto mi esce questo errore 'unexpected symbol &&'
Quindi come si scrive l'operatore 'and'?

Codice: Seleziona tutto

if (!ingrandisci) && transform.localScale.x > 1
		{
			Debug.Log("false");
			transform.localScale -= new Vector3 ( scala, 0, scala);	
		}

Solid Snake
GMI Advanced
Messaggi: 2093
Iscritto il: 19/12/2010, 16:17
Specialità: Programmazione
Uso: GM:Studio 1.4 Standard
Contatta:

Re: Operatori bitwise c#

Messaggio da Solid Snake »

Questo non è un operatore bitwise... Comunque premetto che non ho mai usato c# quindi non so se funziona:
broli ha scritto:

Codice: Seleziona tutto

if (!ingrandisci && transform.localScale.x > 1)
      {
         Debug.Log("false");
         transform.localScale -= new Vector3 ( scala, 0, scala);   
      }
Gli operatori bitwise sono diversi da quelli logici, quelli logici confrontano due o più valori booleani mentre quelli bitwise, confrontano ogni bit del primo valore (sia esso booleano o no) e lo con quello del secondo.

esempio:
11= 1011
10= 1010
1000

11 & 10 fa 1010 in binario.
♥♥♥♥♥♥
Immagine
♥♥♥♥♥♥
Spoiler
Immagine

Avatar utente
broli
Membro
Messaggi: 229
Iscritto il: 11/10/2013, 11:42
Specialità: cheater
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Operatori bitwise c#

Messaggio da broli »

si nella teoria faccio pena e molto
Hai corretto bene il codice, avevo sbagliato a inserire le parentesi.
grazie snake

Avatar utente
broli
Membro
Messaggi: 229
Iscritto il: 11/10/2013, 11:42
Specialità: cheater
Uso: GM:Studio 1.4 Pro
Contatta:

problemi con c#

Messaggio da broli »

Salve ragazzi

sto convertendo in c# un mio giochino fatto in gml in meno di 2 ore e sto riscontrando parecchi problemi.

Codice: Seleziona tutto

void Update () {

		if (transform.localScale.x < 1)
		{
			transform.localScale.x = 1;
		}
mi da questo errore: Cannot modify a value type return value of `UnityEngine.Transform.localScale'. Consider storing the value in a temporary variable.

qualcuno può aiutarmi?

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: Operatori bitwise c#

Messaggio da Jak »

Sta dicendo che non puoi cambiare quella variabile. Probabilmente è roba interna che giustamente non devi toccare. Se vuoi cambiare lo scaling dovrebbe esserci una funzione apposta.
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
broli
Membro
Messaggi: 229
Iscritto il: 11/10/2013, 11:42
Specialità: cheater
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Operatori bitwise c#

Messaggio da broli »

boh non riesco a capire

Avatar utente
broli
Membro
Messaggi: 229
Iscritto il: 11/10/2013, 11:42
Specialità: cheater
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Operatori bitwise c#

Messaggio da broli »

if (transform.localScale.x < 1)
{
transform.renderer.material.color = Color.white ;
transform.localScale = new Vector3(1F,1F,1F);
}
risolto
scusate se chiedo cose qui. non mi andava di gironzolare su altri forum. cmq se è un problema non chiedo più cose su unity.
grazie :D

Solid Snake
GMI Advanced
Messaggi: 2093
Iscritto il: 19/12/2010, 16:17
Specialità: Programmazione
Uso: GM:Studio 1.4 Standard
Contatta:

Re: Operatori bitwise c#

Messaggio da Solid Snake »

Ho fatto qualcosa di sbagliato?
♥♥♥♥♥♥
Immagine
♥♥♥♥♥♥
Spoiler
Immagine

Avatar utente
Sla
GMI VIP
Messaggi: 3618
Iscritto il: 21/07/2008, 10:11
Specialità: Titanismo
Località: (gm) Italia
Contatta:

Re: Operatori bitwise c#

Messaggio da Sla »

le operazioni bitwise sono confronti bit a bit tra due numeri A e B che restituiscono un risultato C.
Ogni bit di C è il risultato del confronto tra i due bit con lo stesso peso in A e B. Segue ovviamente che A,B e C hanno la stessa dimensione.
I vari operatori si differenziano per le regole del confronto.
AND: il bit n-esimo di C è 1 se il bit n-esimo di A ed il bit n-esimo di B sono entrambi 1.
eppure mi sembra tutto giusto...

Solid Snake
GMI Advanced
Messaggi: 2093
Iscritto il: 19/12/2010, 16:17
Specialità: Programmazione
Uso: GM:Studio 1.4 Standard
Contatta:

Re: Operatori bitwise c#

Messaggio da Solid Snake »

Quindi è giusto quel che ho detto no?
♥♥♥♥♥♥
Immagine
♥♥♥♥♥♥
Spoiler
Immagine

Avatar utente
Sla
GMI VIP
Messaggi: 3618
Iscritto il: 21/07/2008, 10:11
Specialità: Titanismo
Località: (gm) Italia
Contatta:

Re: Operatori bitwise c#

Messaggio da Sla »

ah errore mio :spat:
11 e 10 sono in decimale
scelta più felice non potevi fare :asd:
eppure mi sembra tutto giusto...

Solid Snake
GMI Advanced
Messaggi: 2093
Iscritto il: 19/12/2010, 16:17
Specialità: Programmazione
Uso: GM:Studio 1.4 Standard
Contatta:

Re: Operatori bitwise c#

Messaggio da Solid Snake »

Ho preso 2 numeri a caso :asd:
♥♥♥♥♥♥
Immagine
♥♥♥♥♥♥
Spoiler
Immagine

Avatar utente
broli
Membro
Messaggi: 229
Iscritto il: 11/10/2013, 11:42
Specialità: cheater
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Operatori bitwise c#

Messaggio da broli »

salve mi sono impantanato di nuovo.
ho creato un oggetto controller che spawna un cubo nella scena.
ora vorrei assegnare in modo casuale il colore bianco o nero al cubo stesso.
ma col codice che ho scritto mi da questo errore 'An explicit conversion exists (are you missing a cast?)'

Codice: Seleziona tutto

public class spawnCubo : MonoBehaviour
{
	public GameObject cubo;
	public Vector3 spawnValUp;
	private int coloreCasuale;
	private GameObject instCubo;


	void Start()
	{

		funzioneSpawnUp ();	
	}
	

	void funzioneSpawnUp ()
	{
		coloreCasuale = Random.Range(1,2);
		Vector3 posizioneUp = new Vector3(Random.Range(-spawnValUp.x,spawnValUp.x), spawnValUp.y, spawnValUp.z);
		Quaternion rotazioneA = Quaternion.identity;
		instCubo = Instantiate(cubo, posizioneUp, rotazioneA);
		if (coloreCasuale == 1) { instCubo.transform.renderer.material.color = Color.black; }
		if (coloreCasuale == 2) { instCubo.transform.renderer.material.color = Color.white; }	
	}
}

Solid Snake
GMI Advanced
Messaggi: 2093
Iscritto il: 19/12/2010, 16:17
Specialità: Programmazione
Uso: GM:Studio 1.4 Standard
Contatta:

Re: Operatori bitwise c#

Messaggio da Solid Snake »

Forse l'errore è in queste due righe:

Codice: Seleziona tutto

if (coloreCasuale == 1) { instCubo.transform.renderer.material.color = Color.black; }
if (coloreCasuale == 2) { instCubo.transform.renderer.material.color = Color.white; }  
Quel blabla.material.color è di un tipo diverso da Color.black

EDIT: Che engine stai usando?
♥♥♥♥♥♥
Immagine
♥♥♥♥♥♥
Spoiler
Immagine

Avatar utente
broli
Membro
Messaggi: 229
Iscritto il: 11/10/2013, 11:42
Specialità: cheater
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Operatori bitwise c#

Messaggio da broli »

si l'errore dovrebbe essere in queste linee,
instCubo = Instantiate(cubo, posizioneUp, rotazioneA);
if (coloreCasuale == 1) { instCubo.transform.renderer.material.color = Color.black; }
if (coloreCasuale == 2) { instCubo.transform.renderer.material.color = Color.white; }

sto usando c# in unity.

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti