Skocz do zawartości

LolikZabijaka

Użytkownicy
  • Zawartość

    1166
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    2

Zawartość dodana przez LolikZabijaka

  1. Przesiadka na GMS - Crash

    Dobra, na modelu testowym problem zlikwidowany. Druga sprawa, po konwersji na GMS gra wygląda do dupy, wszystkie obiekty są rozpixelowane(nawet przy daniu wygładzenia krawędzi) całość wygląda, jakby była na najniższych ustawieniach, grafika stała się zniekształcona i zakrzywiona? Ustawiłem View na 1280x720, na poprzedniej wersji wyglądało dobrze, a tu taka kaszana, gdzie to ustawić ?
  2. Witam, postanowiłem przenieść swój projekt na GMS(chwilowo korzystam z wersji 1.4, tej najnowszej nie ogarniam, jest cholernie nieczytelna) Niestety nie udało mi się przenieść całej zawartości, jedynie sprity, dźwięki, tła, obiekty, te kluczowe przenoszę ręcznie, o ile AI i inne efekty przeszły bezproblemowo, to problem pojawił się przy obiekcie gracza, w dwóch kluczowych dziedzinach, czyli strzelanie i zmiana broni, Oto kod na zmianę broni: if ( not laduj ) exit i = 0 while( true ) { active -= 1 if ( active < 1 ) active = count if ( ammo_wmagazynku[ bron[ active ]] > 0 or ammo_zapasowe[ bron[ active ]] > 0 ) break if ( i = count ) break else i += 1 } trzyma=true celowanie=0 broni = bron[ active ] //zmiana broni Rolka myszy w górę, gra wywala do pulpitu, pokazując taki komunikat: ############################################################################################ FATAL ERROR in action number 1 of Mouse Event for Mouse Wheel Down for object o_gracz: trying to index a variable which is not an array at gml_Object_o_gracz_MouseWheelDown_1 (line 11) - if ( ammo_wmagazynku[ bron[ active ]] > 0 or ammo_zapasowe[ bron[ active ]] > 0 ) break ############################################################################################ Drugi crash następuje przy oddaniu strzału, postać wydaje dźwięk, pocisk się pojawia, ale od razu pokazuje się to: ############################################################################################ FATAL ERROR in action number 1 of Draw Event for object o_gracz: trying to index a variable which is not an array at gml_Object_o_gracz_DrawEvent_1 (line 8) - if ( ammo_wmagazynku[ bron[ active ]] > 0 or ammo_zapasowe[ bron[ active ]] > 0 and shoot=false ) ############################################################################################ Jak na moje, to wygląda na to, że GMS nie odróżnia od siebie zmiennych na zasadzie "strzał=strzał", w GM8 tego problemu nie było. KOD w DRAW bohatera: if trzyma=false and laduj=true { draw_sprite_ext(sprite_bron[bron],image_index,x-5,y+5,image_xscale, image_yscale,direction ,c_black,0.5) if ( shoot == true ) { if ( ammo_wmagazynku[ bron[ active ]] > 0 or ammo_zapasowe[ bron[ active ]] > 0 and shoot=false ) draw_sprite_ext( sprite_bron[ bron ],image_index,x,y,image_xscale, image_yscale, direction , image_blend,image_alpha) else draw_sprite_ext( sprite_strzal[ bron ],image_index,x,y,image_xscale, image_yscale,direction , image_blend,image_alpha) } else draw_sprite_ext( sprite_bron[ bron ],image_index,x,y,image_xscale, image_yscale,direction , image_blend,image_alpha) } if ( shoot == false and trzyma=true and laduj=true ) { if ( shoot=false ) draw_sprite_ext(sprite_trzyma[bron],image_index,x-4,y+4,image_xscale, image_yscale,direction ,c_black,0.5) draw_sprite_ext( sprite_trzyma[ bron ],image_index,x,y,image_xscale, image_yscale, direction , image_blend,image_alpha) } if laduj=false{ draw_sprite_ext(load_sprite[bron],image_index,x-4,y+4,image_xscale, image_yscale,direction ,c_black,0.5) draw_sprite_ext( load_sprite[ bron ],image_index,x,y,image_xscale, image_yscale, direction , image_blend,image_alpha) } Co tu się gryzie, jeden tego typu problem naprawiłem, ale tutaj nie mam pojęcia.
  3. Przesiadka na GMS - Crash

    W create mam po prostu wpisane to: bron = bron[ active ] Na gm8 wszystko działało, co tu trzeba zmienić? Tablicy w create nie ruszałem.
  4. czemu strona główna nie działa ?

     

  5. Wifi i mikrofon

    Siemka, mam do Was dwa pytania powiązane z obsługą kompa, piszę tutaj, bo społeczność GMC ma szeroko pojętą wiedzę w tym temacie 1. Naszło mnie na partyjki w UT, zawsze ja stawiałem serwery, do tej pory nie było problemu, ale od dłuższego czasu łączę się z netem po WiFi, jak wiadomo, router sprawia, że IP mojego komputera staje się wewnętrzne.(Dostawca daje zewnętrzne stałe IP, ale tylko wtedy, gdy łącze się przez Ethernet) Co należało by zrobić, abym mógł postawić serwer gry łącząc się przez WiFi? 2. Druga sprawa, to mikrofon, który mam wbudowany w laptopa, niby działa, ale jest jebitny szum, a głosu w zasadzie nie słychać. Podłączałem różne urządzenia, ale dziwnym trafem komputer ich nie widzi, cały czas operuje na tym wbudowanym(Podłączałem m.in słuchawki z mikrofonem od PS4, oraz słuchawki od Samsung Galaxy, też z mikrofonem, oczywiście w port od mikrofonu) Czy taki zewnętrzny mikrofon trzeba jakoś "konfigurować" ? Czy jest możliwe, że wejście Mini-Jack w laptopie jest trzepnięte? Laptop działa na systemie Windows 7 Home Premium. Pozdrawiam
  6. Hej, kolejne pytanie dotyczyć będzie optymalizacji, z racji tego, iż zacząłem bawić się w efekty cząsteczkowe, oraz, że w roomach znajduje się często dużo obiektów, zaczęły ostro spadać FPSy. Zauważyłem, że najwięcej zżerają ściany i podobne obiekty solid, oraz wszelkiego rodzaju pierdoły(kamyki, patyki, śmieci). Dezaktywacja się średnio spisuje, ponieważ mimo tego samego punktu wyłączania przeciwników i obiektów solid, po ponownej aktywacji wrogowie potrafią siedzieć w ścianach, albo w innych dziwnych miejscach, generalnie słabo. Postanowiłem spróbować z surface, które nie wiem, czy w ogóle w jakimkolwiek stopniu działa, ponieważ po jego włączeniu obiekty typu ściany i w sumie wszystkie objęte surfem stają się... cieniami, przez które można przeniknąć. Screen - bez surface Screen - z surface Kod surface wygląda następująco : Create: surface = surface_create( room_width , room_height ) surface_set_target( surface ) draw_set_color( c_white ) draw_rectangle( 0 , 0 , room_width , room_height , 0 ) for( i = 0 ; i < instance_number( cialo_par ) ; i += 1 ) { ID = instance_find( cialo_par , i ) draw_sprite_ext( ID. sprite_index , 0 , ID.x , ID.y , ID.image_xscale , ID.image_yscale , ID.image_angle , -1 , 1 ) } surface_reset_target() with( cialo_par ) instance_destroy() Draw: draw_set_blend_mode_ext( bm_dest_color , bm_zero ) draw_surface( surface , 0 , 0 ) draw_set_blend_mode( bm_normal ) "cialo_par" - To rodzina tych obiektów, które mają być optymalizowane. Dlaczego pojawia się taki durny efekt ?
  7. Nad czym aktualnie pracujesz?

    No z rzutem izometrycznym to podejrzewam, że sprawa nie jest łatwa, nieźle, widzę że gierka będzie we współczesnym stylu Ja jednak pozostanę przy TOP-Down i realiach II wojny Dołożę nowy zrzut z wersji testowej. Z racji, że będę robił konwersję na GMS, pracuję na razie głównie nad grafiką, zmieniłem trochę kolorystykę Wermachtu, na bardziej realistyczną, krew również ma ciemniejszą barwę, jest jej więcej i co najważniejsze, zaokrągliłem trochę ulice, bo były zbyt kanciaste. Jeśli po ustawieniu wszystkiego gra będzie grywalna(optymalizacja) to wstawię kolejne demo.
  8. Surface - Optymalizacja

    No dobra, łapię, w takimrazie zainwestuję już te 39$, ale nie teraz, skupię się na razie na grafice itp, a jak znajdę wolne środki, to sobie kupię licencję
  9. Surface - Optymalizacja

    Z tego co widzę, to swojego projektu nie odpalę, bo jest jakiś tam limit spritów itp. (bo już to ściągnąłem)
  10. Surface - Optymalizacja

    A uda się wgrać już gotowy projekt do GMSA ?
  11. Surface - Optymalizacja

    Można w jakiś sposób wypróbować gmsa? Niekoniecznie go wykupując, bo nie wiem, czy ten silnik, który mam w ogóle pójdzie.
  12. Surface - Optymalizacja

    Czyli to oznacza, że nic nie da się zrobić ?
  13. Surface - Optymalizacja

    Pod jakim hasłem tego szukać ?
  14. Surface - Optymalizacja

    Znalazłem w pomocy zakładkę "Drawing Surface" - oto wpis: Note that there are no functions to copy part of the screen to a surface. (This is impossible due to possible format differences between the screen and the surfaces.) If this is required you must set a surface as render target and next draw the room. You can then use the surface copying routines to get parts of it. Note that you can also create sprites and backgrounds from surfaces. See the section on changing resources for more information. Some care must be taken when using these functions. In particular please notice the following: You should never change the drawing target while you are actually drawing on the screen, that is, never use it in drawing events. This will cause serious problems with the projection and viewport. Surfaces do not work correctly with 3D mode. You can use them while not in 3D mode (by calling d3d_end() before using them), but once you start 3D mode again the surfaces will be destroyed. For reasons of speed, the surface is maintained in videomemory only. As a result, you might loose the surface when e.g. the screen resolution changes or the screensaver pops up. Surfaces will not be saved when saving a game. Oraz wpis o titlesach: The following functions deal with layers of tiles, that is, collections of tiles at the same depth. tile_layer_hide(depth) Hides all tiles at the indicated depth layer. tile_layer_show(depth) Shows all tiles at the indicated depth layer. tile_layer_delete(depth) Deletes all tiles at the indicated depth layer. tile_layer_shift(depth,x,y) Shifts all tiles at the indicated depth layer over the vector x,y. Can be used to create scrolling layers of tiles. tile_layer_find(depth,x,y) Returns the id of the tile with the given depth at position (x,y). When no tile exists at the position -1 is returned. When multiple tiles with the given depth exist at the position the first one is returned. tile_layer_delete_at(depth,x,y) Deletes the tile with the given depth at position (x,y). When multiple tiles with the given depth exist at the position they are all deleted. tile_layer_depth(depth,newdepth) Changes the depth of all tiles at the indicated depth to the new depth. With this function you can move whole tile layers to a new depth.
  15. Surface - Optymalizacja

    Gdzie tego szukać ?
  16. Surface - Optymalizacja

    Sorki, mam mały remont na kwadracie, nie miałem jak odpisać. Sprawa wygląda tak: Każdy kawałek, krew itp jest osobnym obiektem, które ma zapisane w create np. losowy kierunek itp. Po drugie, programuję w GM8 (nie w 8.1 - bo jest jakiś niedorobiony) Wiem, że to prehistoryczny program, ale jakoś nie mam ochoty łożyć na GMSa, grami zajmuję się w charakterze hobby ^^ A co do kradnięcia pamięci, to wiele obiektów robi cienie, za pomocą draw, po drugie, same ciała, ze względu na zastosowany ragdoll mogą mulić(aczkolwiek same ciała chyba aż tak nie szkodzą) w każdym poziomie jest sporo titlesetów. Także jeszcze raz, co powinienem zrobić, niekoniecznie zmieniając efekty, które już zaimplementowałem. Pozdro @Edit Same ciała nie mulą, bardziej te wszystkie flaki, odłamki itp, podejrzewam, że solidy też mogą mieć swój wkład w to.
  17. Witajcie, zdaję sobie sprawę, iż temat był maglowany setki razy, mimo przetrzepania forum i wuja google, nie jestem w stanie uzyskać zadowalającego efektu. Przejdę do meritum: Próbuję stworzyć coś, w rodzaju prymitywnego ragdolla, w rzucie 2D (Top-Down). Sama mechanika zachowania ciała nie sprawia większej trudności, poza jedną sprawą: Jak wiadomo, aby uzyskać taki efekt, musiałem podzielić ciało na osiem segmentów(nie licząc korpusu). Efekt ten uzyskuję przy "instance_create" Tutaj pojawia się problem, ponieważ poszczególne segmenty "uciekają od siebie" przy zmianie kąta/kierunku, przykładowo, podczas obracania korpusu z już gotowymi "nogami" owe odnóża w czasie obrotu nie pozostają idealnie w punktach pierwotnego tworzenia. Wiem, iż w takim przyadku należy użyć funkcji lengthdir. Tutaj kilka pytań z mojej strony: 1. Wiem, że należy użyć twierdzenia pyta-golasa, aby obliczyć tę przeciwprostokątną, to pamiętam ze szkoły, ale czy orientacja sprite'a (poziom/pion) ma tu jakieś znaczenie? 2. Jeśli orgin korpusu jest centralny, to czy dane do twierdzenia wyliczać od orginu, czy od wielkości tekstury? 3. Największa bolączka - kąt - z matmy nigdy nie byłem orłem, mimo zdania matury na 50%, nie zmienia to faktu, że tego kąta za cholerę nie mogę wyliczyć, nie wiem jakie dane i w jakiej kolejności podstawić, prosiłbym o łopatologiczne wyjaśnienie mi tego zagadnienia, bez zbędnej matematycznej terminologii Będę wdzięczny, ponieważ wczoraj kilka godzin z tym wojowałem i wyszedł jeden wielki(TU WIADOMO CO) Oto grafika poglądowa korpusu: Korpus
  18. Lengthdir - Nie ogarniam

    Oparte na tamtym silniku Szkieletówki, za to przerobione na własne potrzeby Proszę :D Lewy myszy, robisz nowe ciało Enter - Reset
  19. Surface - Optymalizacja

    Może, ale według mnie są potrzebne, bo przy takiej sytuacji FPS zaczyna spadać
  20. Surface - Optymalizacja

    Próbowałem na różne sposoby i nadal się ów proceder powtarzał, poza tym z samej deaktywacji niewiele wynika, bo czasem się ostro odwala w samym polu widzenia (przy jakiejś ostrzejszej wymianie ognia wszystko fruwa) Uważam, że deaktywacja, tylko po części rozwiązuje problem, potrzebne też są surface.
  21. Surface - Optymalizacja

    Mam swój własny, ale nie widać żadnego. Zamieniłem rozmiar rooma, na view, zrobił się jeszcze większy bajzel, nadal tnie, a przy okazji wszystko zniknęło. Draw if (!surface_exists(surf)) { surf = surface_create( x+view_xview, y+view_yview ); } surface_set_target(surf); draw_set_color( c_white ) draw_rectangle( 0 , 0 , x+view_xview , y+view_yview , 0 ) for( i = 0 ; i < instance_number( cialo_par ) ; i += 1 ) { ID = instance_find( cialo_par , i ) draw_sprite_ext( ID. sprite_index , 0 , ID.x , ID.y , ID.image_xscale , ID.image_yscale , ID.image_angle , -1 , 1 ) } surface_reset_target(); draw_surface(surf, x+view_xview[0] , y+view_yview[0]);
  22. Surface - Optymalizacja

    No okej, obiekty wróciły, ale zniknął kursor za to, jakim cudem ? Taki kod w DRAW, nie dość, że kursora ni ma, to FPS spadł bardziej, niż wcześniej xd if (!surface_exists(surf)) { surf = surface_create( room_width , room_height ); } surface_set_target(surf); draw_set_color( c_white ) draw_rectangle( 0 , 0 , room_width , room_height , 0 ) for( i = 0 ; i < instance_number( cialo_par ) ; i += 1 ) { ID = instance_find( cialo_par , i ) draw_sprite_ext( ID. sprite_index , 0 , ID.x , ID.y , ID.image_xscale , ID.image_yscale , ID.image_angle , -1 , 1 ) } surface_reset_target(); draw_surface(surf,room_width , room_height);
  23. Lengthdir - Nie ogarniam

    No i elegancko, można zamykać Dzięki
  24. Temat zbiorczy na drobnostki

    Rozwiązałem ten problem niezwykle trywialnie Wystarczyło dezaktywować oponenta, poza viewem i bajka jest
  25. Lengthdir - Nie ogarniam

    Wybaczcie double-posta. Udało mi się stworzyć ów silnik Mam tylko jeszcze jedno małe pytanie. Jak ustawić losowy zakres wartości np. Prędkość (od -15 do 15), jak taki random zamknąć w kodzie ?
×