我正在学习OOP,并且有几个问题。 调用initiliazer时,是否会自动处理代码? 原因是这种情况,我不明白为什么我的游戏没有绘制矩形,我要求它在玩家类的 init 部分中绘制。 我是OOP的新手,因此在某种程度上我不确定自己在做什么。 这是我的代码:
public override UITableViewRowAction[] EditActionsForRow(UITableView tableView, NSIndexPath indexPath) {
var actionHide = UITableViewRowAction.Create(UITableViewRowActionStyle.Normal, "Hide for now".Localize(), (arg1, arg2) => {
// delete the row from the table source and UITableView
GroupedChallenge[indexPath.Section].RemoveAt(indexPath.Row);
tableView.DeleteRows(rows, UITableViewRowAnimation.Left);
});
actionHide.BackgroundColor = UIColor.Purple;
return new UITableViewRowAction[] { actionHide };
}
答案 0 :(得分:2)
您经常在主循环中用白色填充屏幕。 Player
类仅借鉴__init__
。这意味着将矩形拉伸一秒钟,然后用白色覆盖。
您对__init__
中的代码被自动调用的假设是正确的。这些带有双下划线的方法在特殊情况下被python调用,它们称为魔术方法。您可以找到其中的列表here。
def __init__(self):
pygame.sprite.Sprite.__init__(self)
# The rect drawing part was moved from here.
def update(self):
# You were previously assigning this to a variable, this wasn't necessary.
pygame.draw.rect(game.screen, black, [self.lead_x, self.lead_y, self.block_size, self.block_size])
填满屏幕后,您需要在主循环中调用新的更新方法。
while True:
game.fill_screen(white)
player.update()