我尝试使用 Switch 小部件更改新状态,但它无法使用,以防万一我创建动态函数并将在小部件树中使用,在函数中我在 Switch 小部件的参数处发送回调函数,但实际上它不能用过的。
代码库
import 'package:flutter/material.dart';
import 'package:navigate_app/widgets/main_drawer.dart';
class FilterScreen extends StatefulWidget {
static const routeNamed = '/filter';
@override
State<FilterScreen> createState() => _FilterScreenState();
}
class _FilterScreenState extends State<FilterScreen> {
bool _glutenFree = false;
bool _vegetarian = false;
bool _vegan = false;
bool _lactoseFree = false;
Widget _buildSwitchFilter(String title, String description, bool currentValue,
Function updateValue) {
return SwitchListTile(
title: Text(title),
subtitle: Text(description),
value: currentValue,
onChanged: (val) => updateValue);
}
@override
Widget build(BuildContext context) {
return Scaffold(
drawer: MainDrawer(),
appBar: …
Run Code Online (Sandbox Code Playgroud) 我目前正在制作一个基于控制台的简单RPG地牢游戏,对C#还是很陌生,我在学校上了视觉基础课程,并且团结一致玩了大约一个月。
我的问题是,我正在编程玩家将会遇到的第一场战斗。我已经构造了一些武器,并且希望能够用一个单独的字符串来调用此人当前的武器,例如,我当前的武器是匕首或对象wp1,我希望将我的“武器”附加到wp1以某种方式,我可以做类似的事情,
Console.WriteLine("Damage: " + weapon.dmg);
而不是对wp1.dmg进行硬编码,以便在游戏制作的后期,当玩家有机会购买更好的武器时,我可以使用变量来做,例如,播放器现在具有短剑(wp2)
private string weapon = "wp2";
...
Console.WriteLine("Damage: " + weapon.dmg);
我试图简单地说,
String weapon = wp1;
然后调用武器.dmg,但这是行不通的,因为它认为我正在尝试调用武器.dmg,而不是wp1.dmg
//players base damage
int damage = 0;
//players strength attribute
int strength = 0;
//weapon constructor
class wp
{
public int dmg;
public int cost;
public string name;
public wp(int d, int c, string n)
{
dmg = d;
cost = c;
name = n;
}
}
//three weapons that are constructed
wp wp1 = new wp(1, …
Run Code Online (Sandbox Code Playgroud)