Kurz LSL skriptování. Shiny Iceberg 2009

Podobné dokumenty
Kurz LSL skriptování. Shiny Iceberg 2009

Kurz LSL skriptování. Shiny Iceberg 2009

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Programovací jazyk Pascal

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Algoritmizace a programování

Algoritmizace a programování

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

Sada 1 - PHP. 03. Proměnné, konstanty

VY_32_INOVACE_08_2_04_PR

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

C2110 Operační systém UNIX a základy programování

VISUAL BASIC. Práce se soubory

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Vstupní požadavky, doporučení a metodické pokyny

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

6. Příkazy a řídící struktury v Javě

PROGRAMOVÁNÍ V SHELLU

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Algoritmizace a programování

Zápis programu v jazyce C#

Programování v jazyce JavaScript

ANOTACE vytvořených/inovovaných materiálů

Jazyk C# a platforma.net

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec

ALGORITMIZACE A PROGRAMOVÁNÍ

Úvod do programování. Lekce 1

Sada 1 - Základy programování

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Inovace bakalářského studijního oboru Aplikovaná chemie

Funkce, podmíněný příkaz if-else, příkaz cyklu for

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

MQL4 COURSE. By Coders guru -5 Smyčky & Rozhodnutí Část 2

Databáze I. 5. přednáška. Helena Palovská

5 Přehled operátorů, příkazy, přetypování

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

Operační systémy. Cvičení 4: Programování v C pod Unixem

Prezentace a vysvětlení programového prostředí NXC

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

JavaScript 101. "Trocha života do statických stránek"

Ing. Igor Kopetschke TUL, NTI

MAXScript výukový kurz

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

LabView jako programovací jazyk II

Operátory. Základy programování 1 Martin Kauer (Tomáš Kühr)

Lekce 01 Úvod do algoritmizace

Proměnné a parametry. predn_08.odt :00:38 1

Martin Hejtmánek hejtmmar

pi Ludolfovo číslo π = 3,14159 e Eulerovo číslo e = 2,71828 (lze spočítat jako exp(1)), např. je v Octave, v MATLABu tato konstanta e není

Algoritmizace a programování

První kapitola úvod do problematiky

7. Datové typy v Javě

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

NPRG030 Programování I, 2010/11

MQL4 COURSE. By Coders guru -3 DATA TYPES. Doufám, že předchozí lekce SYNTAX se vám líbila. V té jsme se pokoušeli zodpovědět:

Paměť počítače. alg2 1

Sada 1 - Základy programování

Algoritmizace prostorových úloh

LEKCE 6. Operátory. V této lekci najdete:

Formátové specifikace formátovací řetězce

NPRG030 Programování I, 2016/17 1 / :58:13

Jazyk PL/SQL Úvod, blok

Algoritmizace. 1. Úvod. Algoritmus

Souhrn Apendixu A doporučení VHDL

Základy algoritmizace a programování

Cykly. Základy programování 1 Martin Kauer (Tomáš Kühr)

A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod Vítejte v Ruby 15. O autorovi 9 Poděkování 9

Knihovna XmlLib TXV první vydání prosinec 2010 změny vyhrazeny

Skripty základy VB, vestavěné objekty, příklady

MQL4 COURSE. By Coders guru -4 Operace & Výrazy

MQL4 COURSE. By Coders guru -8- Proměnné

Přednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8

Stručný návod k programu Octave

Maturitní otázky z předmětu PROGRAMOVÁNÍ

2 Strukturované datové typy Pole Záznam Množina... 4

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti

PODPROGRAMY PROCEDURY A FUNKCE

Programování v jazyce JavaScript

Úvod do programování. Lekce 3

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

Přednáška 4. Regulární výrazy. Filtry grep, sed a awk. Úvod do Operačních Systémů Přednáška 4

Transkript:

Kurz LSL skriptování Shiny Iceberg 2009

2 2 Kurz LSL skriptování Shiny Iceberg v Second Life od roku 2006 shiny.iceberg@virtualmagazine.cz Aktuální projekty virtualmagazine.cz Urbanica, Shinyland Bwindi Orphans cyklus Nejsme jelita

3 Organizační body Průběh lekce bude trvat zhruba 90 minut pokud nekladete dotazy, vypněte si mikrofon příklady si klidně zkoušejte přímo v hledišti Vaše otázky můžete se ptát na konci každého snímku nebo na konci celé přednášky dotazy mohou být přes voice nebo IM při psaní IM z posledních řad použijte Shout

4 To nejdůležitější z minula skript pracuje v objektu a umožňuje interakci s okolím, avatary, jinými objekty či s Internetem pokud je objekt se skriptem v inventory, je skript pozastaven, ale pamatuje si aktuální State skript se skládá z States, Events, Variables, Constants, Flow Control, Functions, Operators States reprezentuje stav objektu, Events událost, která nastala

5 Plán přednášky 1. Fungování a struktura skriptu 2. Z čeho se skládá skript 3. Vlastnosti objektu 4. Pohyb objektu 5. Pose bally 6. Komunikace skriptu 7. Inventory objektu 8. Detektory 9. Particles 10.Příklady a dokumentace

6 Z čeho se skript skládá Každý skript obsahuje několik základních elementů STATES stav EVENTS událost VARIABLES proměnné různých typů CONSTANTS konstanty FLOW CONTROL řízení běhu skriptu FUNCTIONS definované kusy kódu OPERATORS znaky operace

7 2 Láska na první pohled 1 2 5 6 3 7 1. STATES 2. EVENTS 3. VARIABLES 4. CONSTANTS 5. FLOW CONTROL 6. FUNCTIONS 7. OPERATORS 4

8 Variables (proměnné) proměnná - funguje jako krabice s různě tvarovaným výřezem na horní straně můžete do ní vložit a nebo z ní vyndat objekt (hodnotu) pouze určitého typu

9 2 Variables (proměnné) Typy proměnných integer celé číslo float reálné číslo string řetězec textu key identifikátor objektů, textur či avatarů vector skupina tří čísel rotation speciální proměnná pro rotování list seznam proměnných různých typů

10 Kód s proměnnými Vypíše : První text Vypíše : Druhý text

11 2 Počáteční hodnota Vypíše : První text Vypíše : Druhý text

12 Práce s proměnnými Jméno proměnné může obsahovat písmena, čísla (ale ne na začátku) a znak _, ostatní znaky jsou ignorovány, maximální délka 256 znaků Většina funkcí v LSL používá proměnné jako vstupy pro svou činnost Technika typecasting převádí proměnné ruzných typů mezi sebou

13 Typecasting převod mezi různými typy hodnot se provádí uvedením nového typu hodnoty před proměnnou

14 Globální vs. lokální Globální proměnné definované před state default platí v celém skriptu, ve všech state pro jejich hodnotu nemůže být použit výraz Lokální proměnné definované kdekoliv mezi { a } - uvnitř state, event nebo jen bloku má platnost pouze v tomto bloku hodnotu lze naplnit výrazem

15 2 Globální vs. lokální globální ŠPATNĚ lokální ŠPATNĚ

16 Variable integer popisuje celé číslo (bez desetinné čárky) v rozpětí -2147483648 až 2147483647 (32 bit) pro fajnšmekry: mohou být vkládány i čísla v hexadecimálním tvaru (např. 0x2bf)

17 Variable float popisuje reálné číslo s plovoucí desetinnou čárkou, zhruba ± ~10-44.85 až ~10 38.53 (32 bit) operace s proměnnou float způsobuje zaokrouhlování (zanedbatelné) pro fajnšmekry: mohou být vkládány i čísla v exponenciálním zápisu (např. 1.123E-2)

18 Variable string obsahuje řetězec znaků, délka je omezena jen celkovou pamětí pro skript (16 kb) řetězec se při zadávání ohraničuje znakem speciální znaky \t (4 mezery), \n (nový řádek), \ (uvozovky), \\ (lomítko samotné)

19 Variable key obsahuje unikátní identifikátor (UUID) objektu, avatara, skupiny či položky v inventory ve tvaru 00000000-0000-0000-0000-000000000000 UUID se může měnit při vytváření kopií a nebo - notecard: při editaci - objekt: při rezznutí

20 Variable vector jde o tři čísla typu float spojené dohromady ve tvaru < x, y, z > a tato trojice umožňuje vyjádřit například polohu, rychlost, barvu, měřítko atd. pomocí tečkové notace mohu měnit jednotlivé složky vektoru, viz příklad

21 Variable rotation rotace není v LSL vyjádřena pomocí klasického otoření podle os X, Y a Z, ale pomocí takzvaných kvaternionů - tvoří ji 4 hodnoty <X, Y, Z, S> naštěstí lze klasickou XYZ rotaci jednoduše převádět na a z kvaternionů pomocí dvou funkcí lleuler2rot a llrot2euler podrobnější vysvětlení bude uvedeno u funkcí pro rotaci objektu

22 Variable list jde o seznam (až 1000+) hodnot různých typů, zapisovaných mezi znaky [ a ] a oddělených čárkou, výhodné pro generované seznamy s předem neznámou délkou na čtení, hledání, přidávání, mazání nebo třídění jednotlivých položek se používají speciální funkce, např. lllist2integer nebo lllistsort

23 Konstanty v podstatě jde o proměnnou se stále stejnou hodnotou pomáhají dělat kód skriptu čitelnější většina konstant je definována v rámci funkce některé konstanty, např. PI, SQRT2, TRUE, FALSE, ZERO_VECTOR či DEG_TO_RAD jsou všeobecně platné příklad použití:

24 2 Kontrola běhu skriptu existuje několik příkazů, které řídí způsob, jak, kdy a co se ve skriptu vykonává - state přechod do jiného state - if else větvení podle podmínky - for cyklus s daným počtem opaková - while cyklus, testování na začátku - do while cyklus, testování na konci

25 state již jsme probírali v 1. lekci slouží na změnu aktuální state, který vyjadřuje stav objektu

26 if else lze vyjádřit jako: pokud je něco pravda, dělej A, v opačném případě dělej B (anebo nic) test podmínky ANO vykonej příkazy A NE vykonej příkazy B skript pokračuje

27 for lze vyjádřit jako: vykonej daný blok příkazů opakovaně x-krát za sebou počáteční číslo je X vykonám příkazy přidám k X hodnotu Y ANO vyhovuje nové X podmínce? NE skript pokračuje

while lze vyjádřit jako: dokud platí podmínka, vykonávej opakovaně blok příkazů ANO platí podmínka? NE vykonám příkazy skript pokračuje 28

2 do while proběhne alespoň 1x, lze vyjádřit jako: vykonávej opakovaně blok příkazů, dokud platí podmínka vykonám příkazy platí podmínka? skript pokračuje ANO NE 29

30 2 Funkce - předdefinované několik set funkcí je již součástí LL, poznáte je podle názvu funkce llnazevfunkce v kódu je použiji pomocí jména funkce a vstupních parametrů vstupní parametry i výstup mohou být prázdné, např. llownersay (pouze vstup) nebo llgetsundirection (pouze výstup) či lldie (zcela bez parametrů) parametr 1 parametr 2 parametr n funkce výstup

31 Funkce - předdefinované kompletní seznam funkcí a vstupních / výstupních parametrů je k nalezení na LSLwiki na http://www.lslwiki.net/lslwiki/wakka.php?wakka=functions několik příkladů:

2 Funkce - uživatelské kromě předdefinovaných funkcí je možné vytvořit i své vlastní podle stejného principu vstup - výstup tato technika se používá hlavně na opakovaně používanou sekvenci příkazů účelem je úsporný zápis kódu, který je rozdělen do menších a lépe přehledných bloků definice uživatelské funkce musí obsahovat jméno funkce, definici vstupních parametrů, sekvenci příkazů a definici výstupní hodnoty, definuje se před state 32

33 Funkce - uživatelské typ vrácené hodnoty jméno funkce vstupní parametry definice funkce vrácení hodnoty

Operátory matematické a logické operace s hodnotami, zde jsou uvedeny jen ty nejdůležitější float a = a + 3.6 * 0.5; if (a == 2.8) { příkazy } přiřazení hodnoty, sčítání a násobení, obdobně - či / porovnávání hodnot, obdobně!= pro nerovnost, adekvátně <, >, <=, >= if ( (a > 2.1) && (a < 4.3) ) { příkazy } dvojznak znamená NEBO dvojznak && znamená A ZÁROVEŇ 34

Otázky a diskuze 35