Como faço para dar break através de um loop de explosões, jogo estilo bomberman.
2 participantes
Página 1 de 1
Como faço para dar break através de um loop de explosões, jogo estilo bomberman.
Segue o codigo em C#.
void Update () {
time += Time.deltaTime;
if (time >= 2) {
if (aux) {
Instantiate (explosao, transform.position, explosao.transform.rotation);
CriarExplosao (Vector3.left);
CriarExplosao (Vector3.right);
CriarExplosao (Vector3.forward);
CriarExplosao (-Vector3.forward);
aux = false;
}
Destroy (gameObject);
}
}
void CriarExplosao(Vector3 direcao){
Vector3 explosaoPosicao = transform.position + (direcao*2);
//logica de colisao da explosao
for (int i = 1; i < tamanho; i++) {
//cria uma lista das colisoes
bool foundHit = false;
Collider[] hit = Physics.OverlapBox(explosaoPosicao, direcao);
foreach (Collider c in hit) {
if (c.tag == "wall") {
foundHit = true;
Debug.Log ("passei aqui");
break;
}
}
if (foundHit)
break;
Instantiate (explosao, explosaoPosicao, Quaternion.identity);
explosaoPosicao += (direcao*2);
}
void Update () {
time += Time.deltaTime;
if (time >= 2) {
if (aux) {
Instantiate (explosao, transform.position, explosao.transform.rotation);
CriarExplosao (Vector3.left);
CriarExplosao (Vector3.right);
CriarExplosao (Vector3.forward);
CriarExplosao (-Vector3.forward);
aux = false;
}
Destroy (gameObject);
}
}
void CriarExplosao(Vector3 direcao){
Vector3 explosaoPosicao = transform.position + (direcao*2);
//logica de colisao da explosao
for (int i = 1; i < tamanho; i++) {
//cria uma lista das colisoes
bool foundHit = false;
Collider[] hit = Physics.OverlapBox(explosaoPosicao, direcao);
foreach (Collider c in hit) {
if (c.tag == "wall") {
foundHit = true;
Debug.Log ("passei aqui");
break;
}
}
if (foundHit)
break;
Instantiate (explosao, explosaoPosicao, Quaternion.identity);
explosaoPosicao += (direcao*2);
}
Emanuel- Iniciante
- PONTOS : 2615
REPUTAÇÃO : 4
Respeito as regras :
Re: Como faço para dar break através de um loop de explosões, jogo estilo bomberman.
Explique o que você quer fazer exatamente;
Você quer instanciar somente X explosões ou pausar o código quando uma variavel For true?
Você quer instanciar somente X explosões ou pausar o código quando uma variavel For true?
Phph09- Profissional
- PONTOS : 3791
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: Como faço para dar break através de um loop de explosões, jogo estilo bomberman.
coloque o código completo;
e sempre que for colocar códigos, coloque dentro de um script
e sempre que for colocar códigos, coloque dentro de um script
- Código:
//Coloque seu código dentro de um destes
Phph09- Profissional
- PONTOS : 3791
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: Como faço para dar break através de um loop de explosões, jogo estilo bomberman.
- Código:
public class bombController : MonoBehaviour {
public GameObject explosao;
private float time;
private bool aux = true;
public int tamanho;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
time += Time.deltaTime;
if (time >= 2) {
if (aux) {
Instantiate (explosao, transform.position, explosao.transform.rotation);
CriarExplosao (Vector3.left);
CriarExplosao (Vector3.right);
CriarExplosao (Vector3.forward);
CriarExplosao (-Vector3.forward);
aux = false;
}
Destroy (gameObject);
}
}
void CriarExplosao(Vector3 direcao){
Vector3 explosaoPosicao = transform.position + (direcao*2);
//logica de colisao da explosao
for (int i = 1; i < tamanho; i++) {
//cria uma lista das colisoes
bool foundHit = false;
Collider[] hit = Physics.OverlapBox(explosaoPosicao, direcao);
foreach (Collider c in hit) {
if (c.tag == "wall") {
foundHit = true;
Debug.Log ("passei aqui");
break;
}
}
if (foundHit)
break;
Instantiate (explosao, explosaoPosicao, Quaternion.identity);
explosaoPosicao += (direcao*2);
}
}
//ativa collider
void OnTrigger(Collider other){
if(other == null)
GetComponent<Collider>().isTrigger = false;
}
void OnTriggerExit(Collider other){
GetComponent<Collider>().isTrigger = false;
}
}
Emanuel- Iniciante
- PONTOS : 2615
REPUTAÇÃO : 4
Respeito as regras :
Re: Como faço para dar break através de um loop de explosões, jogo estilo bomberman.
Isso queria pausar o código quando a variavel for true.Phph09 escreveu:Explique o que você quer fazer exatamente;
Você quer instanciar somente X explosões ou pausar o código quando uma variavel For true?
Estou com dificuldade na criação da lista de collisões:
- Código:
Collider[] hit = Physics.OverlapBox(explosaoPosicao, direcao);[size=14][/size]
Basicamente não sei usar muito bem o Physics.OverlapBox
Emanuel- Iniciante
- PONTOS : 2615
REPUTAÇÃO : 4
Respeito as regras :
Re: Como faço para dar break através de um loop de explosões, jogo estilo bomberman.
use return; para pausar o codigo
Phph09- Profissional
- PONTOS : 3791
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: Como faço para dar break através de um loop de explosões, jogo estilo bomberman.
- Código:
public class bombController : MonoBehaviour {
public GameObject explosao;
private float time;
private bool aux = true;
public int tamanho;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
time += Time.deltaTime;
if (time >= 2) {
if (aux) {
Instantiate (explosao, transform.position, explosao.transform.rotation);
CriarExplosao (Vector3.left);
CriarExplosao (Vector3.right);
CriarExplosao (Vector3.forward);
CriarExplosao (Vector3.back);
aux = false;
}
Destroy (gameObject);
}
}
void CriarExplosao(Vector3 direcao){
Vector3 explosaoPosicao = transform.position + (direcao*2);
//logica de colisao da explosao
for (int i = 1; i < tamanho; i++) {
//cria uma lista das colisoes
bool foundHit = false;
Collider[] hit = Physics.OverlapBox(explosaoPosicao, direcao);
foreach (Collider c in hit) {
//verifica se collidiu com a parede
if (c.tag == "wall") {
foundHit = true;
break;
}
}
//para o loop, ou instancia a explosao
if (foundHit) {
break;
} else {
//instancia as explosoes
Instantiate (explosao, explosaoPosicao, Quaternion.identity);
explosaoPosicao += (direcao * 2);
}
}
}
//ativa collider
void OnTrigger(Collider other){
if(other == null)
GetComponent<Collider>().isTrigger = false;
}
void OnTriggerExit(Collider other){
GetComponent<Collider>().isTrigger = false;
}
}
- Código:
Collider[] hit = Physics.OverlapBox(explosaoPosicao, direcao);[size=14][/size][size=14][/size] foreach (Collider c in hit) {[size=14][/size] if (c.tag == "wall") {[size=14][/size] foundHit = true;[size=14][/size] [size=14][/size] Debug.Log ("passei aqui");[size=14][/size] break;[size=14][/size] }[size=14][/size] }
Quando as direções são right, back e left. Alguma sugestão?
Emanuel- Iniciante
- PONTOS : 2615
REPUTAÇÃO : 4
Respeito as regras :
Re: Como faço para dar break através de um loop de explosões, jogo estilo bomberman.
- Código:
Collider[] hit = Physics.OverlapBox(explosaoPosicao, direcao);
foreach (Collider c in hit) {
//verifica se collidiu com a parede
if (c.tag == "wall") {
foundHit = true;
break;
}
}
Alguma sugestão?
Emanuel- Iniciante
- PONTOS : 2615
REPUTAÇÃO : 4
Respeito as regras :
Tópicos semelhantes
» como eu faço para a camera orbitar um objeto atraves de um joystick?????
» COMO FAÇO PARA FAZER UM SISTEMA DE SKIN PARA ANDROID ESTILO HEAVY BUS, PROTON BUS, ETC
» Como faço para meu inimigo se movimentar da esquerda para direita estilo super mário?
» Como faço a colisão do terreno em um jogo estilo Beat n' Up?
» Como Faço Para Meu Jogo Ir Para Area Jogos Do Forum?
» COMO FAÇO PARA FAZER UM SISTEMA DE SKIN PARA ANDROID ESTILO HEAVY BUS, PROTON BUS, ETC
» Como faço para meu inimigo se movimentar da esquerda para direita estilo super mário?
» Como faço a colisão do terreno em um jogo estilo Beat n' Up?
» Como Faço Para Meu Jogo Ir Para Area Jogos Do Forum?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos