This is a stub / Este artigo é um rascunho. Editado 2019-004-05
TOC:
- Eventos (Mouse e Keyboard);
- Escrever texto no ecrã com Strings e os respetivos métodos, bem como o uso de [PFont] fontes(revisão de funções com parâmetros e o pushMatrix)
- E, por fim, como preparação para [finalmente] os objetos que vamos abordar para a semana, estivemos a injetar esteroides nos vetores — usámos finalmente vetores multidimensionais (Arrays 2D)
O modo dinâmico tira partido da interação com o utilizador. A forma principal de usar apps é co o rato e teclado. para isso, é necessário compreender como funcionam os Input & Events [functions]:
Mouse
Usámos especificamente este evento para detetar cliques:
mousePressed()
É necessário ver também as seguintes funções:
mouseClicked()
mouseDragged()
mouseMoved()
mouseReleased()
mouseWheel()
Caso sejam usados como verificações (por exemplo no meio objetos, para detetar o/qual o clique ou colisões…?), é necessário conhecer as propriedades/palavras reservadas:
Estas, na realidade já estamos a usar há mais de uma semana…
mouseX
mouseY
pmouseX
pmouseY
Depois também usámos o teclado:
keyPressed()
key
keyCode
keyReleased()
keyTyped()
keyPressed
Juntamente com o teclado, começamos a escrever no ecrã com texto/fontes
Typography
Loading & Displaying
createFont() (não usámos… não recomendo nesta fase)
loadFont()
text()
textFont()
Ver também:
Attributes
textAlign()
textLeading()
textMode()
textSize()
textWidth()
Metrics
Usar texto, desenhando diretamente, ou interagindo (escrevendo) com o teclado é preciso usar/conhecer Strings (Composite data/variables)
À medida que escrevemos no no teclado, manipulamos as variáveis / dados / chars / letras do string, uma-a-uma, ou muitas-a-muitas! Para isso, foi necessário conhecer pelo menos um par de métodos:
length()
substring()
Que são super úteis também para compreender e usar (de forma semelhante nos vetores)
Mais métodos importantes:
equals()
indexOf()
toLowerCase()
toUpperCase()
charAt()
Ver também outras funções e métodos importantes
String Functions
join()
match()
matchAll()
nf()
nfc()
nfp()
nfs()
split()
splitTokens()
trim()
Finalmente, ampliámos a matéria sobre vetores (Arrays) passando a usar vetores bi-dimensionais:
Composite
Embora só na T1 da tarde — e ainda assim, só na teoria porque só consegui colocar a coisa a funcionar depois da aula — foi abordado o conceito de append() para ampliar o vetor à medida que precisamos.
Para manipular arrays é necessário conhecer os métodos e funções específicas:
Array Functions
arrayCopy()
concat()
expand()
reverse() >> já tinha visto isto com o Antão no P1
shorten()
sort()
splice() >> estas duas funcionam de forma muito semelhante às funcções/métodos de string
subset()
Como usámos vetores bidimensionais, o append implicou a leitura de um parágrafo específico no reference:
When using an array of objects, the data returned from the function must be cast to the object array’s data type. For example: SomeClass[] items = (SomeClass[]) append(originalArray, element)
// can you add more objects to the array? eg. add new where clicked
// check append(): https://processing.org/reference/append_.html
// specifically this part: SomeClass[] items = (SomeClass[]) append(originalArray, element)
Na próxima aula/módulo/tópico vão ser abordados objetos… e daí passar para modo
Composite
MOVE to 201—Exercise 1: Make 3 star destroyers circle around Aalderaan
MOVE to 201—Xtra 1: Make 3 tie fighers circle each star destroyer. Make each ship avoid the mouse (eg. 100 px radius)