[update] Added new parameter assign type OnceAssign
.
This commit is contained in:
parent
efc5dbb038
commit
1d3ce20332
@ -34,6 +34,7 @@ struct Period {
|
|||||||
enum ParameterType {
|
enum ParameterType {
|
||||||
Assign,
|
Assign,
|
||||||
AddAssign,
|
AddAssign,
|
||||||
|
OnceAssign,
|
||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
|
@ -73,6 +73,7 @@ enum TokenType {
|
|||||||
|
|
||||||
@TextCompleteMatcher!"=" Assign,
|
@TextCompleteMatcher!"=" Assign,
|
||||||
@TextCompleteMatcher!"+=" AddAssign,
|
@TextCompleteMatcher!"+=" AddAssign,
|
||||||
|
@TextCompleteMatcher!":=" ColonAssign,
|
||||||
|
|
||||||
@TextCompleteMatcher!"+" Add,
|
@TextCompleteMatcher!"+" Add,
|
||||||
@TextCompleteMatcher!"-" Sub,
|
@TextCompleteMatcher!"-" Sub,
|
||||||
|
@ -94,6 +94,14 @@ private class RuleSet {
|
|||||||
return Parameter(
|
return Parameter(
|
||||||
ident.text, ParameterType.AddAssign, expr, CreateTokenPos(ident, semicolon));
|
ident.text, ParameterType.AddAssign, expr, CreateTokenPos(ident, semicolon));
|
||||||
}
|
}
|
||||||
|
static Parameter ParseOnceAssignParameter(
|
||||||
|
@(TokenType.Ident) Token ident,
|
||||||
|
@(TokenType.ColonAssign) Token,
|
||||||
|
Expression expr,
|
||||||
|
@(TokenType.SemiColon) Token semicolon) {
|
||||||
|
return Parameter(
|
||||||
|
ident.text, ParameterType.OnceAssign, expr, CreateTokenPos(ident, semicolon));
|
||||||
|
}
|
||||||
|
|
||||||
static Expression ParseExpressionFromFirstTerm(Term term) {
|
static Expression ParseExpressionFromFirstTerm(Term term) {
|
||||||
return Expression([term]);
|
return Expression([term]);
|
||||||
|
@ -1,16 +1,34 @@
|
|||||||
// this is comment
|
// this is comment
|
||||||
|
|
||||||
|
$define sinwave {
|
||||||
|
translate_x = $sinwave_add_x + sin(rtime * $sinwave_hz) * $sinwave_amp_x;
|
||||||
|
translate_y = $sinwave_add_y + cos(rtime * $sinwave_hz) * $sinwave_amp_y;
|
||||||
|
}
|
||||||
$define horming {
|
$define horming {
|
||||||
translate_x += cos(atan(player_y, player_x)) * $horming_speed;
|
translate_x += cos(atan(player_y, player_x)) * $horming_speed;
|
||||||
translate_y += sin(atan(player_y, player_x)) * $horming_speed;
|
translate_y += sin(atan(player_y, player_x)) * $horming_speed;
|
||||||
}
|
}
|
||||||
|
$define shoot {
|
||||||
|
__dir_x := cos(atan(player_y, player_x)) * $shoot_speed;
|
||||||
|
__dir_y := sin(atan(player_y, player_x)) * $shoot_speed;
|
||||||
|
|
||||||
A [0..10] {
|
translate_x += __dir_x;
|
||||||
translate_x = 0.5 + sin(rtime)*0.5;
|
translate_y += __dir_y;
|
||||||
translate_y = 0.5 + cos(rtime)*0.5;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
B [5..15] {
|
A [0..10] {
|
||||||
|
$define sinwave_add_x {0.5}
|
||||||
|
$define sinwave_add_y {0.5}
|
||||||
|
$define sinwave_amp_x {0.5}
|
||||||
|
$define sinwave_amp_y {0.5}
|
||||||
|
$define sinwave_hz {2}
|
||||||
|
$sinwave
|
||||||
|
}
|
||||||
|
B [10..20] {
|
||||||
$define horming_speed {0.1}
|
$define horming_speed {0.1}
|
||||||
$horming
|
$horming
|
||||||
}
|
}
|
||||||
|
C [20..30] {
|
||||||
|
$define shoot_speed {0.1}
|
||||||
|
$shoot
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user