Skocz do zawartości

Tymon

Użytkownicy
  • Postów

    5 841
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    5

Treść opublikowana przez Tymon

  1. Zrób nowy obiekt i sprawdź czy działa :) Do tego dystans jest mierzony od pozycji światła do pozycji kursora myszy (patrz 1 linia kodu).
  2. Ja się orjętuje?! xD Ja tego na oczy nie widziałem. Ale wiem co trzeba zrobić (bo to są podstawy [znowu]): STEP dis = point_distance(x,y,mouse_x,mouse_y); max_dis = 500; //Maksymalny dystans if dis > max_dis { if light_exists = true { if scrDHDRL_Light_Destroy() = true { light_exists = false; } } } else { if light_exists = false { if scrDHDRL_Light_Add(sprBlast,0,x,y,512,512,0,color,1) /*Kod tworzenia lighta*/ { light_exists = true; } } } Działa w 100%.
  3. Nie działa bo rysujesz w 3D na tym samym depth co 2D.
  4. Bardzo dokładna widać. Jakiego konwertera używasz?
  5. To sobie zrób tablicę: plik[0]='c:\plik1.bmp'; plik[1]='c:\plik2.bmp'; plik[2]='c:\plik3.bmp'; plik[3]='c:\plik4.bmp'; o. I potem wyświetl sobie tą listę za pomocą pętli for. EDIT https://gmclan.org/up152_11_map.html 10zł się należy :P EDIT 2 Tyle razy pisałem kod dla zapisu/odczytu map. Nie chce mi się już pisać po raz N-ty. https://forum.gmclan.org/index.php?showtopi...223entry23223
  6. konstrukcja: if keyboard_check_pressed(<klawisz>) { <instrukcje> }
  7. Czytaj dokładnie helpa :) for(n=0;n<mplay_message_count(0);n+=1;) { mplay_message_receive(0); m_id = mplay_message_id(); //Identyfikator wiadomosci m_value = mplay_message_value(); //Wartosc m_player = mplay_message_player(); //Numer gracza //Tu wykonanie kodu na podstawie odebranych wiadomosci. switch (m_id) { case 1: x+=1; break; case 2: y+=1; break; default: break; } } mplay_message_clear(0); Chyba się nie pomyliłem. EDIT Quetzacotl, to tylko taki mały przykład :P Nie podam mu całego, gotowego kodu :]
  8. To naprawde dużo umiesz. Pomyśl, to bardzo łatwe. mplay_message ... EDIT No powaga :) To są tylko podstawy (chodzi o mplay_data_write i read) i do tego komplenie nie przydatne w grach gdzie obiekty (więcej niż 2) zmieniają swoją pozycję. Weź kartkę i rozpisz sobię wszystko, tylko naucz się GMLa :P
  9. 1. direction = point_direction(x,y,obj.x,obj.y); if alarm[0] <= 0 { var i; i = instance_create(x,y,kula); i.direction = direction; alarm[0] = 2 * room_speed; } else { alarm[0] -= 1; } 2. var i; i = instance_create(x,y,kula); i.direction = direction;
  10. Lol, chcesz milisekund? Masz: room_speed*iloscmilisekund/1000 xD Drobna poprawka dla step: if !instance_exists(<nazwa objektu>) && score = <wynik> { instance_create(x,y,<nazwa objektu>); }
  11. Właśnie z takiego byle czego zrobił się Winamp :]
  12. Da się :] Trzeba dać w step kawałek kodu który sprawdzi czy jest grany jakiś utworek i jeśli nie to ma wykonać kod next_script. Ło taki: if sound_exists(music) { if !sound_isplaying(music) { next_script(); } }
  13. Grygorz, thx i polecam się na przyszłość. Wee! Co to za praca jeśli ma się 50% całego programu gotowego?! :P Ja chciałem was zmotywować do ruszania głową :] Uzyskałem efekt odwrotny. Zastój umysłowy - precz!
  14. Chyba nie rozumiem. Chcesz aby nie wyświetlał zawartości katalogów '..' i '.'? EDIT Znaczy ich nie przeszukiwał :) Jeśli tak to w create musi mieć tak: my_f = 0; my_p = 0; my_pos = 0; //folder[n] - nazwa folderu n. //plik[f,n] - nazwa pliku n w folderze f. // //fc - ilosc folderow. //pc[fc] - ilosc plikow w folderze fc. // //dir - folder przeszukiwany dir = 'folder'; //Wazne aby na koncu byl '\'!!! fc = 0; folder[fc] = file_find_first(dir+'*',fa_directory); while(folder[fc] = '.' || folder[fc] = '..') { folder[fc] = file_find_next(); } while(folder[fc] != '') { fc += 1; folder[fc] = file_find_next(); } file_find_close(); for(f=0;f<fc;f+=1;) { pc[f] = 0; plik[f,pc[f]] = file_find_first(dir+folder[f]+'\*',fa_directory); while(plik[f,pc[f]] = '.' || plik[f,pc[f]] = '..') { plik[f,pc[f]] = file_find_next(); } while(plik[f,pc[f]] != '') { pc[f] += 1; plik[f,pc[f]] = file_find_next(); } file_find_close(); }
  15. Ha! A mi się nudziło: https://gmclan.org/up152_11_playlist.html :P
  16. Hmm, mi się nie nachodzą :) Ale to już kwestia wyedytowania kodu w Draw. Co do tego my_pos=0. Lepiej to dać w Create.
  17. https://gmclan.org/up152_11_katalogi.html Pozdrawiam :)
  18. Heh, bo dałeś rakieta.x i rakieta.y :) Patrz tak: rakieta.x = 0; rakieta.y = 0; Co zrobi ten kod? Ustawi pozycję wszystkich obiektów 'rakieta' w pozycji (0,0). Jeśli dajesz: effect_create_above(ef_smoke,0,rakieta.x,rakieta.y); to GM sobie wybiera obiekt który jest najmłodszy (albo najstarszy, już nie pamiętam) i tworzy efekt w jego pozycji (bo jest rakieta.x i rakieta.y). W kodzie każdej rakiety (w step) daj tak: effect_create_above(ef_smoke,0,x,y); :)
  19. To jest normalne ;] Daj tak w kodzie hosta: if !variable_local_exists('player_find') player_find = 0; if mplay_player_find() != player_find { alarm[0] = 2 * room_speed; //Czekamy 2sek. player_find = mplay_player_find(); } if round(alarm[0]) != 0 { alarm[0] = round(alarm[0]) - 1; } else if round(alarm[0]) >= 0 { //Wysyłamy ponownie wszystkie dane: mplay_data_write(1,mplay_data_read(1)); //itd... alarm[0] = -1; } Powinno pomóc.
  20. ARGH! Zapomniałem poprawić to z "" ;) To już powinno działać jak trzeba: file='ble.txt'; file_open_write(file); for(t=1;t<4;t+=1;) { for(f=0;f<5;f+=1;) { if is_string(global.gracz[t,f]) { file_write_string('global.gracz['+string(t)+','+string(f)+']="'+string(global.gracz[t,f])+'";'); } else { file_write_string('global.gracz['+string(t)+','+string(f)+']='+string(global.gracz[t,f])+';'); } file_writeln(); } } file_close();
  21. Tymon

    Co to za gra?

    Staroć, ale lubię go =)
  22. Tymon

    Co to za gra?

    Primal Rage?
  23. Create: model=d3d_model_create(); d3d_model_primitive_begin(model,pr_trianglelist); d3d_model_vertex_normal_texture(model,-67.67,36.29,0.00,0,-1.57,0,1.00,0); d3d_model_vertex_normal_texture(model,67.91,36.29,0.00,0,-1.57,0,0.00,0); d3d_model_vertex_normal_texture(model,-67.67,-48.45,0.00,0,-1.57,0,1.00,0); d3d_model_vertex_normal_texture(model,67.91,-48.45,0.00,0,-1.57,0,0.00,0); d3d_model_vertex_normal_texture(model,-67.67,-48.45,0.00,0,-1.57,0,1.00,0); d3d_model_vertex_normal_texture(model,67.91,36.29,0.00,0,-1.57,0,0.00,0); (...) d3d_model_primitive_end(model); Draw: d3d_transform_set_identity(); d3d_transform_add_translation(x,y,0); d3d_model_draw(model,0,0,0,-1); d3d_transform_set_identity(); Twożenie i rysowanie modeli. EDIT Ładowanie modeli z pliku: model=d3d_model_create(); d3d_model_load(model,<plik>);
  24. Etam: Create grid_size=32; xx = 0; yy = 0; xxt=xx; yyt=yy; s = 0; //Przelaczniki sposobu poruszania sie: mouse = true; //mysza keyboard = true; //klawiatura Step xx = round(x/grid_size); yy = round(y/grid_size); if s > 0 { repeat(s) { dir = point_direction(x,y,xxt*grid_size,yyt*grid_size); x += cos(dir/180*pi); y -= sin(dir/180*pi); if xxt*grid_size = round(x) && yyt*grid_size = round(y) { s = 0; break; } } } if xxt*grid_size = round(x) && yyt*grid_size = round(y) { //Ruch mysza if mouse = true { if mouse_check_button_pressed(mb_left) { xxt = round((mouse_x-(grid_size/2))/grid_size); yyt = round((mouse_y-(grid_size/2))/grid_size); } } //Ruch klawiatura if keyboard = true { if keyboard_check_pressed(vk_up) { yyt -= 1; } else if keyboard_check_pressed(vk_down) { yyt += 1; } if keyboard_check_pressed(vk_left) { xxt -= 1; } else if keyboard_check_pressed(vk_right) { xxt += 1; } } s = 0; } else { s = 20; // Predkosc poruszania sie } //By Tymon Przykład: https://gmclan.org/up152_11_ruch_gridem.html Pozdrawiam.
  25. Właśnie. Chętnych na razie nie znajdziesz. Wybacz ale to co teraz widać jest garstką skręconych przykładów za pomocą kabla od kosiarki + trochę twojego wkładu + grafiką ściągniętą z internetu (to jeszcze przejdzie). Tu trochę za mało twojego wkładu :) Btw. To jest GML a nie C++ :P
×
×
  • Dodaj nową pozycję...