IPB

Witaj Gościu ( Zaloguj | Rejestruj )

> Uwaga!

Zanim zadasz pytanie:

1. Sprawdź czy odpowiedzi nie ma w dziale FAQ lub czy podobnego tematu nie było na forum
2. Zapoznaj się z polskim tłumaczeniem dokumentacji (help)
3. Zapoznaj się też z naszymi kursami i przykładami


Powtarzające się pytania będą karane ostrzeżeniami lub usuwaniem tematów !!!

Nigdy nie nazywaj tematu "Pomoc", "Help me!" itp. Tytuł tematu powinien być "mówiący" czyli taki, który od razu po przeczytaniu informuje o poruszanym w nim problemie.

PROSIMY PISAĆ CZY TEMAT DOTYCZY GameMaker 8.1, GameMaker:Studio LUB WCZEŚNIEJSZYCH!!!!

 
Reply to this topicStart new topic
Skaczący przeciwnik
Estremo_PL
post 7.01.2017 - 17:12
Post #1


Chicken


Wiek: ?
Grupa: Użytkownicy
Postów: 4
Dołączył: 6.01.2017
Uploader
Ostrzeżenia:
(0%) -----


Przeciwnik ma za zadanie stać w miejscu i skakać i na początku wszystko działa ale po około 20 sekundach przestaje skakać i stoi w miejscu (animacja wciąż trwa).

kod wygląda tak
[Create]
skok = choose(1,2,3);
if skok = 1 then image_index = 0;
if skok = 2 then image_index = 1;
if skok = 3 then image_index = 2;
image_speed = 0.05;
friction = 0.28;

[Step]
if image_index = 1 then vspeed = -12;

if place_meeting(x,y-3,object1)
{
effect_create_below(ef_explosion,x,y,2,c_black)
instance_destroy()
with(object1) vspeed = -7;
}

oraz w Step jest użyte 5 klocków które chętnie bym przeniósł do kodu (pochodzą z pewnego poradnika)
Start of a block
set the vertical speed 0.6 relative
check collission x = 0 y = vspeed, only solid, relative
set the vertical speed 0
End of a block
Go to the top of the page
 
+Quote Post
post 7.01.2017 - 17:12
Post #





Wiek:



Uploader


Pani kontekstowa pokazuje swe wdzięki tylko w Valhalli lub wszędzie jeżeli nie jesteś zalogowany(a)! :3
Go to the top of the page
 
Quote Post
I am Lord
post 7.01.2017 - 23:11
Post #2


Trzymam Sword
Ikona grupy

Wiek: 26 lat
Grupa: ♔ Zwycięzca CA 2016 ♔
Postów: 4,426
Dołączył: 16.12.2005
Skąd: Piła

Huder


Nagrody:
Mistrz Ligi24 (2013)

Uploader
Ostrzeżenia:
(0%) -----


zobacz czy zadziała if round(image_index) = 1
albo nawet chyba lepiej będzie tak:
if ( image_index > 1-image_speed && image_index <= 1+image_speed )

CYTAT
Start of a block
set the vertical speed 0.6 relative
check collission x = 0 y = vspeed, only solid, relative
set the vertical speed 0
End of a block


Prawdopodobnie to będzie coś takiego ale nie dam głowy uciąć bo z klocków korzystałem 15 lat temu tongue2.gif
GML
vspeed += 0.6;
if ( place_free(x, y+vspeed) )
{
vspeed = 0;
}


--------------------
Acziwment unloked
Ciekawsze moje gry:
Ukończone: NewtonPong Android
Nieukończone:Maze Strategy
Compostowe: DungeonMazeShooter, ScorchedTanks, Atargatis, RedvsBlue, Wspomnienia
Go to the top of the page
 
+Quote Post
Estremo_PL
post 8.01.2017 - 0:23
Post #3


Chicken


Wiek: ?
Grupa: Użytkownicy
Postów: 4
Dołączył: 6.01.2017
Uploader
Ostrzeżenia:
(0%) -----


CYTAT(I am Lord @ 7.01.2017 - 23:11) *
zobacz czy zadziała if round(image_index) = 1
albo nawet chyba lepiej będzie tak:
if ( image_index > 1-image_speed && image_index <= 1+image_speed )



Prawdopodobnie to będzie coś takiego ale nie dam głowy uciąć bo z klocków korzystałem 15 lat temu tongue2.gif
GMLvspeed += 0.6;
if ( place_free(x, y+vspeed) )
{
vspeed = 0;
}


niestety nie działa to ale te klocki dają grawitacje, (zwykła coś mi dziwnie działa ale jeszcze popróbuję może się uda) a bardziej mi chodzi o to czemu po chwili przeciwnik przestaje skakać
Go to the top of the page
 
+Quote Post
I am Lord
post 8.01.2017 - 0:26
Post #4


Trzymam Sword
Ikona grupy

Wiek: 26 lat
Grupa: ♔ Zwycięzca CA 2016 ♔
Postów: 4,426
Dołączył: 16.12.2005
Skąd: Piła

Huder


Nagrody:
Mistrz Ligi24 (2013)

Uploader
Ostrzeżenia:
(0%) -----


Nie zadziałało to co napisałem wyżej?

tak to miało wyglądać:
GML
if ( round(image_index) = 1 ) then vspeed = -12;
if place_meeting(x,y-3,object1)
{
effect_create_below(ef_explosion,x,y,2,c_black)
instance_destroy()
with(object1) vspeed = -7;
}


albo tak:

GML
if ( image_index > 1-image_speed && image_index <= 1+image_speed ) then vspeed = -12;
if place_meeting(x,y-3,object1)
{
effect_create_below(ef_explosion,x,y,2,c_black)
instance_destroy()
with(object1) vspeed = -7;
}


--------------------
Acziwment unloked
Ciekawsze moje gry:
Ukończone: NewtonPong Android
Nieukończone:Maze Strategy
Compostowe: DungeonMazeShooter, ScorchedTanks, Atargatis, RedvsBlue, Wspomnienia
Go to the top of the page
 
+Quote Post
Estremo_PL
post 9.01.2017 - 1:21
Post #5


Chicken


Wiek: ?
Grupa: Użytkownicy
Postów: 4
Dołączył: 6.01.2017
Uploader
Ostrzeżenia:
(0%) -----


CYTAT(I am Lord @ 8.01.2017 - 0:26) *
Nie zadziałało to co napisałem wyżej?

tak to miało wyglądać:
GMLif ( round(image_index) = 1 ) then vspeed = -12;
if place_meeting(x,y-3,object1)
{
effect_create_below(ef_explosion,x,y,2,c_black)
instance_destroy()
with(object1) vspeed = -7;
}

albo tak:

GMLif ( image_index > 1-image_speed && image_index <= 1+image_speed ) then vspeed = -12;
if place_meeting(x,y-3,object1)
{
effect_create_below(ef_explosion,x,y,2,c_black)
instance_destroy()
with(object1) vspeed = -7;
}


zadziałało to

GML
if ( image_index > 1-image_speed && image_index <= 1+image_speed ) then vspeed = -12;
if place_meeting(x,y-3,object1)
{
effect_create_below(ef_explosion,x,y,2,c_black)
instance_destroy()
with(object1) vspeed = -7;
}


mógłbyś mi teraz wytłumaczyć dokładnie działanie tej linijki if ( image_index > 1-image_speed && image_index <= 1+image_speed ) then vspeed = -12; i czemu moja wersja po chwili się psuła, i czy chcesz aby cię umieścić w twórcach w przedziale ,,podziękowania dla"?
Go to the top of the page
 
+Quote Post
I am Lord
post 9.01.2017 - 17:06
Post #6


Trzymam Sword
Ikona grupy

Wiek: 26 lat
Grupa: ♔ Zwycięzca CA 2016 ♔
Postów: 4,426
Dołączył: 16.12.2005
Skąd: Piła

Huder


Nagrody:
Mistrz Ligi24 (2013)

Uploader
Ostrzeżenia:
(0%) -----


Psuło się bo image_index zaczęło przyjmować wartości zmienno-przecinkowe ze względu na zmianę image_speed
W pewnym momencie image_index zaczęło przeskakiwać przez wartość image_index == 1 z twojego warunku. No więc trzeba było rozszerzyć to tak by nie sprawdzał konkretnej liczby a zamiast tego zakres.
Zakres od image_index-image_speed do image_index+image_speed; Wtedy jest pewność że warunek się spełni i nie przeskoczy przez twoją żądaną jedynkę.


--------------------
Acziwment unloked
Ciekawsze moje gry:
Ukończone: NewtonPong Android
Nieukończone:Maze Strategy
Compostowe: DungeonMazeShooter, ScorchedTanks, Atargatis, RedvsBlue, Wspomnienia
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 użytkownik(ów) przegląda ten temat (1 gości i 0 anonimowych użytkowników)
0 Użytkownicy:

 



RSS Wersja Lo-Fi Aktualny czas: 24.01.2017 - 14:16