麻线Sugarcube,限制玩家数据

问题描述

首先,我对Twine和Sugarcube还是很陌生,但是直到现在我还是找到了自己的出路,但现在我一直在努力寻找并回答以下问题:

我的角色具有一些强度和精力等统计数据。

我这样使用它们:

在StoryInit中:

<<set $energy to 100>>

在故事的段落中:

<<set $energy to $energy +10>>

现在,我想分别为所有统计信息设置最大值和最小值。 我以前是这样的:

<<set $energy to $energy +30>>
<<if $energy gte 100>><<set $energy to 100>>
<</if>>

但是每次都要做很多工作,而且只是在问错误。

在那里,分别限制这些统计信息的最佳方法是什么。 (因此强度最大为200,能量最大为100)

解决方法

我有一段时间没有使用 Twine,但我认为你可以像往常一样使用 javascript Math 的东西:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',theme: ThemeData(
        primarySwatch: Colors.blue,visualDensity: VisualDensity.adaptivePlatformDensity,),home: MyHomePage(title: 'Flutter Demo Home Page'),);
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key,this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),body: _buildBody(),floatingActionButton: FloatingActionButton(
        onPressed: () {},tooltip: 'Increment',child: Icon(Icons.add),);
  }

  Widget _buildBody() {
    return ListView.builder(
        itemCount: 5,padding: EdgeInsets.only(left: 16,right: 16),shrinkWrap: true,itemBuilder: (context,index) {
          return Container(
            // height: 76,margin: EdgeInsets.only(bottom: 13),padding: EdgeInsets.only(left: 24,top: 12,bottom: 12,right: 22),decoration: BoxDecoration(
                color: Color(0xFFFFFFFF),borderRadius: BorderRadius.circular(15),boxShadow: [
                  BoxShadow(
                      offset: Offset(0,10),blurRadius: 50,color: Colors.blue.withOpacity(0.23))
                ]),child: Row(
              children: <Widget>[
                Container(
                  height: 57,width: 57,decoration: BoxDecoration(
                      shape: BoxShape.circle,image: DecorationImage(
                          image: AssetImage("assets/images/image_1.png"))),SizedBox(
                  width: 13,Expanded(
                  child: Text(
                    "testing123451 testing123451 testing123451 testing123451",],);
        });
  }
}

或者把它做成一个小部件:

<<set $energy to Math.clamp($energy + 30,100)>>

所以你可以使用:

<<widget setEnergy>>
<<set $energy to Math.clamp($energy + $args[0],100)>>
<</widget>>

这样您就可以避免重复/错误。为力量等制作一个类似的,只需更改 100。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...