我知道如何制作一个彩色背景,但我似乎找不到任何有用的设置图像作为背景,并真的很感激我的代码的任何帮助.
这是我的.py文件:
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen, FadeTransition
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.gridlayout import GridLayout
#from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.core.window import Window
from kivy.core.image import Image
#from kivy.graphics import BorderImage
from kivy.graphics import Color, Rectangle
#from kivy.uix.image import AsyncImage
class StartScreen(Screen):
pass
class GameScreen(Screen):
pass
class RootScreen(ScreenManager):
pass
class MainApp(App):
def build(self):
return RootScreen()
if __name__ == "__main__":
MainApp().run()
Run Code Online (Sandbox Code Playgroud)
和.kv文件:
#:import FadeTransition kivy.uix.screenmanager.FadeTransition
<RootScreen>:
transition: FadeTransition() …Run Code Online (Sandbox Code Playgroud) 创建对象的副本时,几何及其属性(材质...)将与该对象共享.
在Xcode场景编辑器中,您可以通过设置Geometry Sharing(下Attributes Inspector)来轻松禁用它Unshare.
我想以编程方式实现相同的功能,但在SceneKit文档中找不到任何类似的属性.
我找到了一个类似的帖子,有人建议复制对象,它的几何和它的材料.我试过这样做但没有成功.
这是我的代码的相关部分:
let randomColors: [UIColor] = [UIColor.blue, UIColor.red, UIColor.yellow, UIColor.gray]
let obstacleScene = SCNScene(named: "art.scnassets/Scenes/obstacleNormal.scn")
let obstacle = obstacleScene?.rootNode.childNode(withName: "obstacle", recursively: true)
for i in 1...15 {
let randomPosition = SCNVector3(x: Float(i) * 3.5, y: 0.15, z: sign * Float(arc4random_uniform(UInt32(Int(playgroundZ/2 - 2.0))) + 1))
let randomColor = randomColors[Int(arc4random_uniform(UInt32(3)))]
let obstacleCopy = obstacle?.clone()
obstacleCopy?.position = randomPosition
obstacleCopy?.geometry?.materials.first?.diffuse.contents = randomColor
obstacleCopy?.eulerAngles = SCNVector3(x: 10.0 * Float(i), y: Float(30 - …Run Code Online (Sandbox Code Playgroud) 我知道有很多帖子用于将字符转换为整数,字符串转换为BigInteger-s,int-s转换为BigInteger-s,...但我无法弄清楚为什么这不起作用.
Scanner sc = new Scanner(System.in);
BigInteger sum = 0;
String line = "";
while (sc.hasNext()) {
line = sc.next();
for (char character: vrstica.toCharArray()) {
sum = sum.add(BigInteger.valueOf(Character.getNumericValue(character)));
}
}
Run Code Online (Sandbox Code Playgroud)
我有Scanner和BigInteger进口.输入数据由带数字的行构成,如下所示:7218904932283439201 \n7218904932283439201 ...
如果我理解正确的话,BigInteger-s的附加内容应该是这样编写的:bigInteger1.add(bigInteger2)其中两个数字都是类型BigInteger.所以我应该转换类型的该字符char输入int,然后是转换int价值BigInteger与方法BigInteger.valueOf(),它接受一个int参数.
我得到的错误如下: incompatible types: int cannot be converted to BigInteger
我没有看到我可能出错的地方,所以如果有人能指出我的错误,我会很感激.
我有一个相当复杂的应用程序,所以我决定组织一些代码,并且我对主类的引用不再有问题了.我已经有了一个包含类的结构,但它们都是主类的属性,并且没有其他类属性需要引用主类.
所以我的结构是这样的: Main Class -> Class1, Class2, Class3 etc.
重组后,我创建了一个类似于此的结构:
Main Class -> (Class1 -> Class12, Class13), Class2, Class3 etc.
Run Code Online (Sandbox Code Playgroud)
我之前将引用传递给主类就好了,但是现在我有了更深层的结构,我得到了主要的class null错误.
与此特定错误相关的结构如下:
MainWindow: Form -> MaxFlow (algorithm) -> LabelNodes (a part of that algorithm)
Run Code Online (Sandbox Code Playgroud)
结构非常简单,因为我的大部分代码与问题完全无关.
首先,我有MainWindow课.
public partial class MainWindow : Form {
private MaxFlow maxFlow; // Algorithm
internal MaxFlow MaxFlow { get => maxFlow; set => maxFlow = value; }
public MainWindow() {
InitializeComponent();
maxFlow = new MaxFlow(mainWindow: this);
}
Run Code Online (Sandbox Code Playgroud)
然后Maxflow上课:
class …Run Code Online (Sandbox Code Playgroud)