Skip to content

Este repositório como intuito demonstrar como eu desenvolvo meus plugins de construct 2.

Notifications You must be signed in to change notification settings

FabioSmuu/SDK_PluginC2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 

Repository files navigation

Modelo de Plugin - SDk para a game engine Construct 2.

Desenvolvi esta SDK com o intuito de facilitar o meu desenvolvimento em relação a plugin e como quase que diariamente me perguntam como desenvolvo, resolvi deixar uma base atualizada com algumas explicações, para que ajude estas pessoas a iniciar um addon próprio.

Informações básicas:

  • Todo os metodos dos plugin tanto na edittime.js quanto na runtime.js estão repletos de comentarios.
  • A runtime.js foi rescrita usando classes, apenas para que suas prototypes funcionem como uma instância única.
  • Cuidado ao desenvolver um plugin direto no construct, pois, qualquer erro bobo pode corromper sua engine.
  • Os arquivos de exemplos contem algumas ACEs exatamente, por exemplo, então use a SDK_Limpa em seus projetos.
  • Você pode se aventurar tanto com uma SDK Limpa de Plugin ou Behavior.

Como configurar um behavior:

Embora esta SDK seja para desenvolver plugin, se torna possível desenvolver behaviors seguindo estes passos.

  • No arquivo edittime.js, Altere GetPluginSettings por GetBehaviorSettings.

  • Mantenha o type com o valor 'object', para evitar bugs.

  • Evite flags com modificações graficas.

  • Na linha 152 da edittime.js altere CreateIDEObjectType para CreateIDEBehaviorType.

  • Finalizando a edittime, altere IDEObjectType por IDEBehaviorType na linha 153 e 156 da edittime.js

  • A edição na runtime será trocar de cr.plugins_ para cr.behaviors nas linhas 33 e 45.

  • Busque na runtime qualquer referência com a palavra plugin e a substitua por behavior.

  • Edite a class type, colocando o parametro o objtype na constructor e tribundo a this:

class Type {
		constructor(behavior, objtype) {
			this.behavior = behavior
			this.runtime = behavior.runtime
			this.objtype = objtype
		}
...
  • Também edite a class Instance e adicione o metodo tick() (um exemplo comentadno na linha 78 da runtime.js) e sua crontrutor inserindo o prametro inst, atribuindo a this, alem de atribuir a type do behavior.
class Instance {
		constructor(type, inst) {
			this.type = type
			this.behavior = type.behavior
			this.inst = inst
			this.runtime = type.runtime
		}

		tick() {
			//
		}
		...

Primeiros passos:

Você primeiro deve informar a engine, as configurações do seu plugin, para isso você irá configurar a edittime.js

'name':			'Nome visual do plugin',
'id':			'NomeInternoNaRuntime',
'version':		'0.1',
'description':		'Descrição do que o plugin faz.',
'author':		'DeehLeh',
'help url':		'https://deehleh.itch.io',
'category':		'DeehLeh',
'type':			'object',

Ativando os ticks do plugin:

this.runtime.tickMe(this)

Exemplos para fins didatísticos:

Emitir um alert:

Ententendo oque são Trigger's:

Os trigger são condições que serão ativas por alguma função/metodo ou até mesmo ações, como no caso deste exemplo.

Manipulação de loop:

A manipulação de loop ocorre em toda ACE, ação, condição e expressão.

A condição irá pegar uma quantia de vezes que deverá acionar as ações no mesmo tick.

A ação da qual um loop precisa é a de para-lo, pois, nem sempre queremos um loop que percorra até o final.

Por último temos a expressão que retorna em qual index o loop se encontra.

  • Sem nenhum parâmetro ou flags próprias a expressão se encontra na linha 129 da edittime.js
  • Seu metodo, também simples, se encontra na linha 294 da runtime.js, deixando claro que qualquer expressão deve retornar dentro da função ret, que é um parâmetro obrigatório em todas as expressões.

Manipular objetos:

A manipulação de objetos ocorre apos a detecção do sol, então é separado um array de instância para o objeto selecionado.

Outros exemplos você pode observar dentro na pasta SDK_Exemplo

Obrigado pela sua atenção!