Skocz do zawartości

Porusznie postacią(android)


Kewin

Rekomendowane odpowiedzi

My potrzebujemy więcej informacji. Nie mamy pojęcia, jaką masz kamerę, nie wiemy jak chcesz sterować i co znaczy "będę mógł obracać obiektem o 360 stopni i poruszać nim". Opisz problem lepiej, jeśli oczekujesz "szczegółowych" odpowiedzi.

Odnośnik do komentarza
Udostępnij na innych stronach

Używam kamery podążającej za graczem.

Chciałbym zrobić joystick np. taki ja w guns of boom. Czyli jak przesune główkę od joysticka do przodu to moja postać pójdzie do przodu i obróci się w taki sposób że twarzą będzie szedła do przodu a nie plecami. Moją postać widać z góry. Joystick ma być na ekranie bo to gra na androida.

Odnośnik do komentarza
Udostępnij na innych stronach

Takie poruszanie, jakie opisałeś nie jest łatwe. Zaczynając od tego, że musisz rysować swój joystick na ekranie. Czego sposobów jest sporo. Najprostszy to rysowanie na warstwie GUI na stałej pozycji.

///Draw GUI
//oczywiście koordynanty dobierz pod rozdzielczość i UI
_x = 64
_y = 720-64
_r = 32
draw_circle(_x,_y,_r,1)

Tu będziesz miał od razu ustawione pozycje joysticka jako zmienne. Możemy je teraz wykorzystywać przy wykrywaniu inputu. Pytanie jest jednak jak w ogóle porusza się twoja postać? Bo sposobów są setki. 

if(mouse_check_button(mb_left)) {
	var mx = display_mouse_get_x();
	var my = display_mouse_get_y();
	if(point_in_circle(mx,my,_x,_y,_r)) {
		direction = point_direction(_x,_y,mx,my)
		speed = point_distance(_x,_y,mx,my)
	}
}

Oczywiście ustawienie direction i speed to tragiczne rozwiązanie... ale to jest kierunek w jakim ten przykład będzie podążać.

Samo wykrywanie joysticka też jest tylko konceptem który jest tragiczny. Traci input gdy wyjedziesz palcem poza joystick. Musisz sprawdzać czy pierwsze dotknięcie jest na joysticku i czy gracz kontynuuje trzymanie palca

 

Jakbyś pokazał screen to rozwiał byś 80% pytań.

Odnośnik do komentarza
Udostępnij na innych stronach

Jak twoja postać wygląda w grze. Jak odbywa się poruszanie.

I poza tym zacząć już próbować. Całego rozwiązania na tacy nie dostaniesz, szczególnie że w większości zależy od twojej gry i nie jest to uniwersalne rozwiązanie.

Odnośnik do komentarza
Udostępnij na innych stronach

if (keyboard_check(vk_left))
{
image_angle = image_angle + 3;
    audio_sound_pitch(silnik,random_range(59.2,59.4))
    audio_play_sound(silnik,6,0);
}

if (keyboard_check(vk_right))
{
image_angle = image_angle - 3;
    audio_sound_pitch(silnik,random_range(59.2,59.4))
    audio_play_sound(silnik,6,0);
}

if (keyboard_check(vk_up))
{
motion_add(image_angle, 0.03);
    audio_sound_pitch(silnik,random_range(0.2,0.4))
    audio_play_sound(silnik,0,0);
}

 

Chciałbym tak zrobić żeby to wszystko robił joystick.

Odnośnik do komentarza
Udostępnij na innych stronach

OK bardzo ładnie. Więc to powinno zadziałać. Co prawda wymaga masy tweekowania jak pisałem wyżej:

if(mouse_check_button(mb_left)) {
	var mx = display_mouse_get_x();
	var my = display_mouse_get_y();
	if(point_in_circle(mx,my,_x,_y,_r)) {
		image_angle += (_x-my)/10
		motion_add(image_angle, (_y-my)/30)
	}
}

Wartości 10 i 30 to taka na oko "czułość".

Oczywiście nic nie testowałem, nie mam przy sobie programu.

Odnośnik do komentarza
Udostępnij na innych stronach

if(mouse_check_button(mb_left)) {
	var mx = display_mouse_get_x();
	var my = display_mouse_get_y();
	if(point_in_circle(mx,my,_x,_y,_r)) {
		image_angle += (_x-my)/10
		motion_add(image_angle, (_y-my)/30)
	}
}

ten kod do step event joystick?

Odnośnik do komentarza
Udostępnij na innych stronach

Cytuj

ata koło kursora tylko raz jest daleko raz blisko

Co to znaczy? Musisz umieć to zinterpretować. Ta kopka pokazuje punkt w który mgra myśli że dotykasz ekranu. Musisz pokombinować by było dobrze. Tutaj nie pomogę. Za dużo rzeczy zależnych od ciebie w projekcie

Odnośnik do komentarza
Udostępnij na innych stronach

_x = 130
_y = 1000-64
_r = 64
draw_circle(_x,_y,_r,10)

if(mouse_check_button(mb_left)) {
    var mx = window_mouse_get_x();
    var my = window_mouse_get_y();
    if(point_in_circle(mx,my,_x,_y,_r)) {
        image_angle += (_x-my)/10
        motion_add(image_angle, (_y-my)/30)
    }
}
else { speed = 0; }

draw_circle(display_mouse_get_x(),display_mouse_get_y(),8,0);

 

 

postać można teraz zatrzymać ale idzie tam gdzie ona chce a nie ja

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Postać idzie tam, gdzie dotkniesz palcem w okręgu względem jego środka. Jak chcesz ruch taki jak gałką analogową na padzie, to są gotowe przkłady na yoyogames.com, w marketplace albo na forum. Coś na tej zasadzie ?
 

 

 

 

Update:

albo np. to: https://marketplace.yoyogames.com/assets/483/easy-mobile-controls

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...