6. listopadu 2016

Essentials Direct Download

Přímý download link pro skripty Essentials verze 3.3: DOWNLOAD SCRIPTS
Celý balík jako velká hromada skriptů plus nový skript nazvaný anchor.

Skripty jsou určeny pro Game Maker Studio verze 1.x
( YYG 2.11.2016 vypustili do světa GMS 2.0 )


Skript anchor mění souřadnice objektu tak, aby byl vždy k vybranému objektu zleva, zprava, shora nebo zdola. K tomu lze použít buď pevný offset jako prosté číslo nebo procentuální offset založený na skutečné velikosti sprite. Povinný je jen argument0, kterým je object. Nemusí existovat - v tom případě se nic neděje.

syntax:
anchor(object_id,[offset_x],[offset_y],[left_contact_%],[right_contact_%],[top_contact_%],[bottom_contact_%])

Typické použití bude v Eventu Step.

object_id - id objektu podle kterého se provede zarovnání
offset_x, offset_y - pevná vzdálenost přičítaná k poloze ( čili self.x = object_id.x + offset_x )
left_contact_% - procentuální vzdálenost ( object_id bude zleva od self )
right_contact_% - procentuální vzdálenost ( object_id bude zleva od self )
top_contact_% - procentuální vzdálenost ( object_id bude zleva od self )
bottom_contact_% - procentuální vzdálenost ( object_id bude zleva od self )

Příklad:
anchor(obj_player,0,0,100);

Objekt ve kterém se skript spustí bude umístěn tak, aby měl obj_player po své levé straně přesně na dotek.

3. září 2016

Calc Bar

Je to drobná aplikace, kterou jsem potřeboval já za specifickým účelem a přesto, že mě nenapadá, jak by se mohl hodit komukoliv jinému, dávám ho sem ke stažení jako exe pro Windows a zdroják. Teoreticky je možné, že se někdo bude chtít podívat, jak je to napsané. Howgh.

>DOWNLOAD<

Ovládání: Numpad 0123456789+-*/.
- výsledek =
- umazání od konce Backspace
- ukončení Alt+F4
- umístění je vždy horní střed obrazovky
- když ztratí focus zmenší se na několika pixelovou čáru a klepnutím se zas zvětší








25. června 2016

Minutka

Prográmek na měření - sledování ubíhajícího času. Tři samostatně nastavitelné pásky odměřují čas v rozsahu 1 vteřina až 99 dní. Aplikace měří i když není spuštěna. Po znovuspuštění se prostě časy přepočítají. Je k dispozici verze pro Windows a pro Android.



Ovládání je jednoduché.
Ikona zvonku spouští a zastavuje měření času. Ikony plus a mínus nastavují délku měření ( i za běhu ). Pokud je měření spuštěno, v pruhu se zobrazuje kolik už uběhlo nebo o kolik už se přesáhlo - pokud už je víc. V kosodélníku nad pruhem je název, který lze kliknutím změnit. Pak je tam nastavený čas a na konci měřítko. Měřítko určuje kolik se přidá nebo ubere kliknutím na plus či mínus ikony. Pokud je třeba 10min, tak kliknutí na mínus ubere 10 min ( nejmenší čas je 1s ).

11. června 2016

Essentials 2016 - balíček skriptů v GML

Skripty Essentials 2016 se stahují jako .gmz projekt všechny najednou. Když nějaký není potřeba, lze ho většinou smazat ( některé se potřebují navzájem ). Jsou roztříděny po složkách a přidávají do Game Makeru zajímavé funkce:

Essentials General ( všeobecné skripty čili kdeco)

Essentials Debug ( čili ladicí skripty )

Essentials Math ( čili matematika a logika )

Essentials Keyboard ( čili obsluha klávesnice )

Essentials Draw ( čili vykreslování )

Essentials Windows Views ( čili okna v oknech )

Essentials Spritebase ( čili databáze obrázků )

Essentials 2D buffer management ( čili správa bufferu )

Essentials Array XD ( čili vícerozměrná pole )

Essentials CSV file reader ( čili čtení externí tabulky )

Essentials Dice ( čili házení kostkou )

Essentials Motion Position ( čili pohyb a poloha )

Essentials Paths ( čili křivky )

Essentials Strings ( čili texty )

Essentials Balanced Resources ( čili vyvažování hodnot )

Essentials Quicksort ( čili řazení pole )



Essentials General ( všeobecné skripty čili kdeco)

Essentials General ( všeobecné skripty čili kdeco)

wait(i)
- chvíle čekání uvnitř kódu ( číslo i musí být vysoké, aby to bylo poznat, třeba 1000 )
mouse_on()
- zjišťuje, zda je nad objektem myš ( if mouse_on { ... } )
Loader() a Saver()
- zajištuje ukládání hodnot do souboru, názvy proměnných se dopisují dovnitř skriptu podle vzoru uvedeného v komentářových řádcích, hodnoty těchto zapsaných proměnných se uloží najednou v datovém souboru ( obsah není snadno čitelný a měnitelný člověkem ), hodí se na autosave uvnitř hry, neobtěžuje hráče dialogem
create_object_list(obj1,num1,[obj2],[num2]..,[obj7],[num7])
- vytvoří mimo obrazovku dané počty vybraných objektů a vrátí seznam jejich id.
 instance_nearest_list(x,y,obj,[limit])
- najde limit nebo všechny instance objektu a dodá seznam jejich id seřazených podle vzdálenosti od souřadnic x,y
play_simply(filename,time_to_kill)
- přehraje zvuk přímo ze souboru, k přehrávání se používá objekt sound_destroyer, který hraje tolik vteřin, kolik je time_to_kill hodnota, -1 znamená, že se sám nezničí, fuknce vrací id instance sound_destroyeru
find_random_instance(object_index or all )
- vrátí id náhodné instance daného objektu
message(string)
- vypíše na obrazovku zprávu, čeká na odklepnutí ( nezáleží, co právě ve hře probíhá - všechno pozastaví ), používá objekt messenger

zpět na přehled všech Essentials 2016



Essentials Debug ( čili ladicí skripty )

Essentials Debug ( čili ladicí skripty )

draw_ds_list(ds_list_ref,max_printed_items_int, start_at_item_int)
- vypíše na obrazovku do pozice x,y svého objektu obsah ds_listu ( font je třeba nastavit předem )
write_log(anything)
- do souboru debug.log zapíše zprávu a čas zápisu, přidává pořád další záznamy, soubor nemusí existovat, argument nemusí být string
clear_log()
- pokud soubor debug.log existuje je vyčištěn, jinak je založen, zapsán čas, game_id a záznam "Log started"
console('TEXT_LABEL:',[anything],[anything2],[anything3]..)
- univerzální ladicí výpis nahrazující show_message, který vypíše automaticky do okna Compile i objekt, který ho spustil, čas a k proměnným vypisuje jejich typ, obsah výpisu navíc vrací, takže lze použít i například takto: write_log( console('Životy',lives)) // dvojtečky a mezery se dělají automaticky
cout(string or number)
- kratší verze show_debug_message, narozdíl od skriptu console, nedělá nic navíc
show_fps()
- vypisuje aktuální počet snímků za vteřinu, dává se do DrawGUI, ve fullscreenu vypisuje do levého horního rohu, v okně vypisuje do záhlaví okna, používá font -1 a sám nastauje barvy ( lze změnit uvnitř skriptu )

Essentials Stopwatch
( nezávislý systém k přesnému měření času, nepotřebuje ostatní skripty k činnosti )
stopwatch_start()
- spustí přesné měření času, používá proměnnou global.STOPWATCH, kterou si sám založí
stopwatch_stop()
-  vrátí  čas změřený od posledního stopwatch_start v mikrosekundách
stopwatch_debug_message(), nelze použít bez předchozího spuštění stopwatch_start()
- pokud se použije do Compile okna vypíše ''Processed in N µs", kde N je změřený čas od posledního stopwatch_start, nelze použít bez předchozího spuštění stopwatch_start()

zpět na přehled všech Essentials 2016



Essentials Math ( čili matematika a logika )

Essentials Math ( čili matematika a logika )

is_between(arg0,<=arg1,<=arg2)
- vrací true, pokud je arg1 v rozsahu mezi arg0 a arg2, například is_between(4,20,9) vrátí false
e(int)
- vrací hodnotu 10 na Ntou, určeno k zápisu velkých čísel, např. 12*e(9) bude 12000000000
divisible(A,B)
- vrací true, když A je dělitelné B a false, když není
factorial(n)
- vrací faktoriál čísla n čili n * n-1 * n-2 ....1 ( pozor, při záporných číslech nehodí error, ale vrátí 1  )
binom(n,k)
- vrací n nad k, čili n! /( k! - (n-k)! )
bernstein(k,n,t)
- vrací k-tý bernstainův polynom z celkového stupně n v místě parametru t
čili binom(n,k)*power((1-t),n-k)*power(t,k)

zpět na přehled všech Essentials 2016

Essentials Keyboard ( čili obsluha klávesnice )

Essentials Keyboard ( čili obsluha klávesnice )

WASD()
- dává se do Stepu a způsobí pohyb objektu ( W nahoru, S dolů, A doleva, D doprava )

ctrl()
- vrací true, pokud je stisknut levý nebo pravý Control
shift()
- vrací true, pokud je stisknut levý nebo pravý Shift
alt()
- vrací true, pokud je stisknut levý nebo pravý Alt

Pozn. Je možný zápis if ctrl && alt && shift ( ... )

TAB_key_released()
- vrací true, pokud byla v minulém Stepu puštěna klávesa TAB
TAB_key_pressed()
- vrací true, pokud byla v minulém Stepu stisknuta klávesa TAB
TAB_key_hold()
- vrací true, pokud je držena klávesa TAB

zpět na přehled všech Essentials 2016

Essentials Draw ( čili vykreslování )

Essentials Draw ( čili vykreslování )

no_anim(frame)
- většinou se hodí do Create eventu a vypne animaci s tím, že nechá staticky pro objekt jeden zvolený obrázek, například no_anim(5) nastaví šestý obrázek ( protože první je nula ).
clr([color],[alpha],[erase_screen])
- nastaví barvu, průhlednost (volitelně) a smaže obrazovku ( volitelně)
set_font(align_0to9,color,alpha,font__reference)
- nastaví jednou funkcí kompletní vlastnosti vypisování textu,
align je zarovnání jako na Numpadu: 5 střed, 8 nahoře, 2 dole, atd.
čili text zarovnaný zleva a výškově na střed bude 4.
color a alpha jsou barva a průhlednost
font_reference je název fontu v resource tree Game Makeru
fade_screen(color,amount)
- celou obrazovku překryje barvou o dané průhlednosti ( 0 je průhledná, 1 plná ), hodí se například na postupné zatmívání do černé
draw_sprite_button()
- vykresluje sprite jako tlačítko, čili vykreslí snímek 1 pokud je nad instancí myš, jinak 0, obrázek je dán sprite_indexem, používá mouse_on() skript a nekontroluje, zda instance sprite má ( když nemá, tak to skončí errorem z GM )
draw_ball(x,y,color)
- vykreslí stínovanou kuličku ( velikost 15.5 px )  uvedené barvy na pozici x,y
( obrázek je výřez snímku z šedého roomu po provedení draw_ball(x,y,c_red); )
skript se hodí jako reprezentace určité barvy v případě, že zatím chybí sprite
draw_crosshair(x,y,size,color)
- vykreslí zaměřovací kříž o velikosti size a barvě color do pozice x,y, průhlednost bere aktuální nastavenou
draw_surface_centered(surface_id,x,y)
- vykreslí surface tak, aby jeho střed byl v pozici x,y
surface_duplicate(surface_id)
- vytvoří kopii daného surface a vrací jeho index
ellipse_render(width,height,color1,alpha1,color2,alpha2,precision)
- vytvoří sprite obsahující vyplněnou elipsu, nějak takto:

( pozor, stínování různých průhledností bůhvíproč ( možná spíše YYGvíproč ) nefunguje správně
   - pokud to dokáže někdo opravit, ať se mi ozve, já to sem pak dám )

precision je pixelová hustota vyplňování - takže třeba 0.001

Příklad použití:
if sprite_index==-1
{ sprite_index=ellipse_render(500,200,c_red,1,c_blue,1,0.001); }
else
{ draw_sprite(sprite_index,0,room_width/2,room_height/2); }


zpět na přehled všech Essentials 2016