Skip to content

action_sequence_script

mithrendal edited this page Apr 4, 2021 · 18 revisions

scripting in vc64web can be expressed in two different languages. In javascript for more complex scenarios and in action-sequence-script a script language specifically designed for the basic needs of the c64 emulation.

If you don't like to bother with this simple script language and want directly get to the real complex javascript language then you should know that you can always write action-sequence-script in javascript too.

You do can this action("...put some action script in here...")

e.g. javascript fire on joystick1 for 100ms expressed with a action-sequence-script call

  action('j1fire1=>100ms=>j1fire0'); 

This chapter is about the simpler action-sequence-script.

a single keyboard key action

simulates a keyboard press, for example B for drop a bomb in a game

a char sequence action

enclosed in single quotes like 'load"$",8,1'

joystick controller action

j<number><direction><press/release>

number = 1 or 2 direction = up, down, left, right press/release = 1/0

for example moving joystick2 right/up for one second j2right1=>j2up1=>1000ms=>j2right0=>j2up0

for example fire and down:
j1fire1, j1down1 followed somewhen by a j1down0

time delay action

<number>ms

for example

1000ms for delaying 1 second

you can chain actions together with the => operator

examples:

j1fire1=>100ms=>j1fire0

simple loops

simple loops are expressed in this way:

loop5{j1fire1=>100ms=>j1fire0=>150ms}

the number directly after the keyword loop expresses how often the loop has to be repeated

lets look this in real on vc64web

https://dirkwhoffmann.github.io/virtualc64web/#{"openROMS":true,"buttons":[{"title":"example","run":true,"lang":"actionscript","script":"3000ms=>loop5{'F'=>j1fire1=>100ms=>j1fire0=>150ms}"}]}

the script will wait 3 seconds and emit F keyboard press and a joystick1 fire press for 5 times

of course this is a rather nonesense sequence of actions but it should give you the idea of how things work...

Now you should be able to create an auto fire button and which triggers on a certain keypress.

Clone this wiki locally