Labirynt 2.0 13808 33

O temacie

Autor RafalBudzis

Zaczęty 15.08.2012 roku

Wyświetleń 13808

Odpowiedzi 33

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
I czy to sa labirynty takie labiryntowe?
A jakie mogą być inne ? :D  W Wersji full dodam edytor map i możliwość zrobienia swojej kampanii oraz pojedynczej mapy wiec jak moje labirynty będą za mało labiryntowe możesz zrobić swoje albo pobrać kogoś innego jak ktoś zrobi xD
I jest jakas nagroda za przejscie ? :D
Na razie nie :D  Może dodam jeszcze liczenie czasu i zapisywanie najlepszego czasu.
Btw. Robiles to 4 fun ? Czy uczysz sie na tym  ?
I to i to ;d

Wojak

Wojak

Użytkownicy
posty67
Propsy9
  • Użytkownicy
W przypadku labiryntów generator wydaje się być lepszym pomysłem niż edytor  :wink:
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy

RafalBudzis

Labirynt 2.0
#22 2012-08-21, 18:02(Ostatnia zmiana: 2012-08-21, 18:31)
Jeśli chcesz możesz zobaczyć ten edytor ale w wersji bez zapisu narazie :P Może się przekonasz ;d

filmik jak to wygląda ;d
https://www.youtube.com/watch?v=nrMCoxyJBGI

Wojak

Wojak

Użytkownicy
posty67
Propsy9
  • Użytkownicy
Menu dużo ładniejsze niż w moim szajsie, gra też całkiem dobra  :ok:  ale gdzie edytor?  :[
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Menu dużo ładniejsze niż w moim szajsie, gra też całkiem dobra  :ok:  ale gdzie edytor?  :[
tutaj ;d
http://www.sendspace.com/file/hoisj2

można go odpalić na pełnym ekranie korzystając z launchera gry.

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
jak zrobić losowanie które by ładnie działało ? mam coś takiego
      public void set_tex_wall2(Game game)
        {
            int a;
            Random randObj = new Random();
            a =  randObj.Next(0,5);

            if (a == 1)
            {
                Texture = game.Content.Load<Texture2D>("sciana");
            }
            else if (a == 2)
            {
                Texture = game.Content.Load<Texture2D>("sciana2");
            }
            else if (a == 3)
            {
                Texture = game.Content.Load<Texture2D>("sciana3");
            }
            else if (a == 4)
            {
                Texture = game.Content.Load<Texture2D>("sciana4");
            }
            else
            {
                Texture = game.Content.Load<Texture2D>("sciana5");
            }
        }

problem w tym ze losowanie jest chyba zależne od czasu wiec zazwyczaj wylosuje wszystkie 300 ścian (około) takich samych na planszy lub 2 rodzaje ścian. Jak zrobić żeby to ładnie działało i losowało wszystkie możliwe opcje ?

Wojak

Wojak

Użytkownicy
posty67
Propsy9
  • Użytkownicy
Nie wiem jak łatwo da się to zrobić w C# ale w lua:

1) umieścił bym wszystkie elementy w tablicy
2) wylosował numer między 1 a ilością elementów w tablicy
3) usunął wylosowany element z tablicy i zastosował tam gdzie trzeba
4) powtarzał do póki w tablicy są jeszcze elementy
5) przywrócił domyślną tablicę i zaczął od nowa
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Może ci nadpisuje wyniki? Po prostu robi ileś tam losowań, a na końcu używa jednej tekstury dla wszystkich ścian?

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy

RafalBudzis

Labirynt 2.0
#28 2012-08-22, 18:22(Ostatnia zmiana: 2012-08-22, 18:23)
Cytuj
Może ci nadpisuje wyniki? Po prostu robi ileś tam losowań, a na końcu używa jednej tekstury dla wszystkich ścian?

ok zrobiłem tak i działa 2 razy mi wylosowało ze połowa ścian była taka a 2 połowa taka wiec losowanie coś źle działa ;d

zrobiłem tak

      public void set_tex_wall2(Game game, ref int temp)
        {
            int a;
            Random randObj = new Random();
            a = randObj.Next(1, 5);
            do
            {
                a = randObj.Next(1, 5);
            }
            while (temp == a);

            temp = a;
            if (a == 1)
            {
                Texture = game.Content.Load<Texture2D>("sciana");
            }
            else if (a == 2)
            {
                Texture = game.Content.Load<Texture2D>("sciana2");
            }
            else if (a == 3)
            {
                Texture = game.Content.Load<Texture2D>("sciana3");
            }
            else if (a == 4)
            {
                Texture = game.Content.Load<Texture2D>("sciana4");
            }
            else
            {
                Texture = game.Content.Load<Texture2D>("sciana5");
            }
        }

dzięki za pomoc i chęci ;)

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja

Adanos
Administrator

Labirynt 2.0
#29 2012-08-22, 18:26(Ostatnia zmiana: 2012-08-22, 18:28)
Nie, raczej źle kombinujesz. Kiedy wywołujesz metodę set_tex_wall2? I gdzie używasz Texture?

Możesz jeszcze spróbować, aby wypisywało na konsolę lub do pliku tekstowego to, co wylosuje.

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy

RafalBudzis

Labirynt 2.0
#30 2012-08-22, 18:36(Ostatnia zmiana: 2012-08-22, 18:37)
Nie, raczej źle kombinujesz. Kiedy wywołujesz metodę set_tex_wall2? I gdzie używasz Texture?

Możesz jeszcze spróbować, aby wypisywało na konsolę lub do pliku tekstowego to, co wylosuje.
set_tex_wall2 jest to funkcja(czy metoda ;d  ?) klasy sciana
Texture jest to pole klasy sciana
a wywołuje to po ustawieniu ścian w klasie game


           int temp2;
            temp2 = 0;
            foreach (sciana sciana in sciany)
            {
                sciana.set_tex_wall2(this,ref temp2);
            }

i działa :D  :P

może sposób jest fatalny ale nie miałem innego pomysłu aby to teraz dodać gdybym pomyślał wcześniej to mógł bym to ładnie dac do konstruktora ale teraz by było za dużo zmian :/

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Cytuj
może sposób jest fatalny ale nie miałem innego pomysłu aby to teraz dodać gdybym pomyślał wcześniej to mógł bym to ładnie dac do konstruktora ale teraz by było za dużo zmian :/
Jeśli znasz lepszy i ładniejszy sposób, to lepiej to zrób. Bo jak zostawisz brzydki kod, to później możesz się w nim nie połapać ;p

Ezzam

Ezzam

Użytkownicy
posty391
Propsy367
  • Użytkownicy
Zrób pętlę foreach dla wszystkich elementów na liście, a później blok switch przypisujący teksturę do kafla (w głównym pliku gry, nie w klasie ściany).
 

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Dobra skończone 1 wersja dla graczy już jest ;d  Gra posiada 10 plansz i dużo bajerów :D



http://budzis.republika.pl/programy/labirynt2.html


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry