Skocz do zawartości

heckpointy ala crasch


szpaq99

Rekomendowane odpowiedzi

jak właśnie zrobić taki checkpointy jak w Crash że jak zginę to nie przenosi do checkpoint który ostatni rozwaliłem ?? Będe wdzięczny za odpowiedź, na jakiej metodzie roić save .ini czy .isave dawidsa

 

 

edit1: przepraszam za błąd w nazwie tematu

Edytowane przez szpaq99
Odnośnik do komentarza
Udostępnij na innych stronach

ale w ini czy w isave
O, czuję się zaszczycony :>

A możesz w isave - będzie szybsze, i bezpieczniejsze... :P

 

Ale jeśli chcesz, aby checkpointy działały tylko w czasie gry (po wyłączeniu gry trzeba zaliczyć lvl od nowa) daj w kolizji z checkpointem:

GML
global.chpnt_x = x;

global.chpnt_y = y;

, a po śmierci ustawaj pozycje gracza na te ze zmiennych.
Odnośnik do komentarza
Udostępnij na innych stronach

Co za idiotyczny pomysł, żeby takie rzeczy robić na oddzielnych plikach.

 

Kod Dawiddsa jest jakby dobry, ale to zależy co chcesz osiągnąć.

Bo jak tak zrobisz to to wszystko będzie identycznie jak w momencie przegranej. Czyli martwi będą przeciwnicy wszyscy których zabiłeś. Również ci których zabiłeś po zdobyciu check pointa :)

Ale jak ci to odpowiada to ok.

Odnośnik do komentarza
Udostępnij na innych stronach

Za każdym razem jak zabijesz wroga zapisujesz jego id do jakiejś tablicy z etykietką 0.

 

Gdy zdobędziesz checkpoint wszystkim wrogom w tablicy zmieniasz etykietkę na 1 (to oznacza że są już zcheckpointwani)

 

Teraz kiedy przegrasz to restartujesz rooma i przeglądasz całą tablicę. Jeśli jest etykietka 1 to niszczysz wroga o danym id, a jeśli 0 to go zostawiasz a wywalasz id z tablicy.

 

No i tworzysz sobie dodatkową zmienną global.check_point która ma 0 jeśli nie zdobyłeś jeszcze żadnego checka albo 1 jeśli już jakiś zdobyłeś

I przy starcie rooma ustawiasz gracza na te zmienne co ci dawidds podał, ale tylko jeśli global.check=1l, bo jak 0 to znaczy że nie zdobyłeś jeszcze żadnego checka i trzeba od startu.

Odnośnik do komentarza
Udostępnij na innych stronach

aby nie zaśmiecać forum i nie pisać nowego tematu do Crackk dał mi taki kod na most ala jazz rabbit ale jak ponim chce pochodzić most się rozsówa i spada na dół pisałem crackowi ten błąd ale mi nie odpisał więc kod

 

GML
//create kodu

QuadInitiation( "QuadEngine.dll" ); // inicjacja silnika ( "nazwa_dll.dll" )

QuadPhysicsSetInertion( 0.9 ) // bezwladnosc objektow ( numer >0 i <1 )

ilosc_szczebli = 10;

szerokosc_sprita = 10;

 

poz_xstart = x; // od kad ma byc most

poz_ystart = y; // -||-

poz_xend = x + ilosc_szczebli*szerokosc_sprita*1.5; // do kad ma byc most

poz_yend = y;

 

for ( i = 0; i < ilosc_szczebli; i += 1 )

{

a[ i ] = QuadObjectAdd( );

QuadObjectSetPos( a[ i ], poz_xstart * i, poz_ystart );

QuadObjectSetRange( a[ i ], szerokosc_sprita/2 );

ax[ i ] = QuadObjectGetX( a[ i ] );

ay[ i ] = QuadObjectGetY( a[ i ] );

}

 

lud = QuadObjectAdd( );

QuadObjectSetPos( lud, x, y );

QuadObjectSetRange( lud, 16 ); // 32 : 2 = 16. Szerokosc sprita dzielone na dwa

ludx = QuadObjectGetX( lud );

ludy = QuadObjectGetY( lud );

 

 

GML
// step kodu

 

for ( i = 0; i < ilosc_szczebli-1; i += 1 )

{

QuadObjectGlueForced( a[ i ], a[ i+1 ], szerokosc_sprita+1 );

}

QuadObjectSetPos( a[ 0 ], poz_xstart, poz_ystart );

QuadObjectSetPos( a[ ilosc_szczebli-1 ], poz_xend, poz_yend );

 

QuadObjectSetPos( lud, obj_franky.x, obj_franky.y );

QuadPhysicsUpdate( );

ludx = QuadObjectGetX( lud );

ludy = QuadObjectGetY( lud );

 

for ( i = 0; i < ilosc_szczebli; i += 1 )

{

ax[ i ] = QuadObjectGetX( a[ i ] );

ay[ i ] = QuadObjectGetY( a[ i ] );

}

 

obj_franky.x = ludx;

obj_franky.y = ludy;

 

 

GML
// event game end

 

QuadFree( "QuadEngine.dll" ); // zwalniamy silnik z pamieci</span>

 

 

GML
// draw kodu

 

for ( i = 0; i < ilosc_szczebli; i += 1 )

{

draw_sprite( sDeseczka, 0, ax[ i ], ay[ i ] );

}

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ę...