会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132884个问题

#encoding=utf-8

from tkinter import *
import random
class Application(Frame):
    def __init__(self, master=None):
        super().__init__(master)
        self.master=master
        self.pack()
        self.createWidget()

    def createWidget(self):
        self.canvas = Canvas(self, width=800, height=600, bg='green')
        self.canvas.pack()
        # 画一条直线
        self.line = self.canvas.create_line(10, 10, 30, 20, 40, 50)    # 坐标(10,10),(30,20),(40,50)
        # 画一个矩形
        self.rect = self.canvas.create_rectangle(50, 50, 100, 100)     # 左上角坐标(50, 50) 右下角坐标(100,100)
        # 画一个椭圆,坐标两双,为椭圆的边界矩形左上角和右下角
        self.oval = self.canvas.create_oval(50, 50, 100, 100)           # 绘制如上巨星的内切圆

        #global photo
        self.photo = PhotoImage(file="000.gif")
        self.canvas.create_image(550, 100, image=self.photo)

        Button(self, text='随机画出十个矩形', command=self.draw50Recg).pack(side='left')

    def draw50Recg(self):
        for i in range(0, 10):
            x1 = random.randrange(int(self.canvas['width'])/2)
            y1 = random.randrange(int(self.canvas['height'])/2)
            x2 = x1 + random.randrange(int(self.canvas['height'])/2)
            y2 = y1 + random.randrange(int(self.canvas['height'])/2)
            self.canvas.create_rectangle(x1, y1, x2, y2)

if __name__=="__main__":
    root = Tk()
    root.title('my window')
    root.geometry('500x300')
    app = Application(master=root)
    root.mainloop()

image.png

  1. 老师,为啥视频里,这里没有加self呢,我自己加上之后没啥区别。不加的化,这个变量就是灰色的,

  2. 为什么这里画一个图形啥的 不需要调用pack()呢

Python 全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 19458楼
JAVA 全系列/第五阶段:JavaWeb开发/Ajax技术详解(旧) 19459楼

我的这个代码怎么按下键盘的上下左右  控制台没有输出

"""
新增功能
     添加事件
     1点击关闭 关闭窗口
     2按下键盘时候,判断键盘按下的是什么键,做如何处理

"""
import pygame
SCREEN_WIDTH=700
SCREEN_HEIGHT=500
BG_COLOR=pygame.Color(0,0,0)
class MainGame():
    window=None
    def __init__(self):
        pass
    #开始游戏
    def startGame(self):
        #加载主窗口
        pygame.display.init()
        #设置窗口的大小及显示
        MainGame.window=pygame.display.set_mode([SCREEN_HEIGHT,SCREEN_HEIGHT])
        #设置窗口的标题
        pygame.display.set_caption("坦克大战1.03")
        while True:
            #给窗口设置填充色
            MainGame.window.fill(BG_COLOR)
            #获取事件
            self.getEvent()
            pygame.display.update()

    #结束游戏
    def endGame(self):
        print("谢谢使用,欢迎再来")
        exit()

    #获取事件
    def getEvent(self):
        #获取所有事件
        eventList=pygame.event.get()
         #遍历事件
        for event in eventList:
            #判读按下的是关闭还是键盘
            #如果安的是退出,
            if event.type==pygame.QUIT:
                self.endGame()
                #如果是键盘的按下
                if event.type==pygame.KEYDONW:
                    #判断按下的是上,下,左,右
                    if event.key==pygame.K_LEFT:
                        print("按下左键,坦克向左移动")
                    elif event.key==pygame.K_RIGHT:
                        print("按下右键,坦克向右移动")
                    elif event.key==pygame.K_UP:
                        print("按下右键,坦克向上动")
                    elif event.key==pygame.K_DOWN:
                         print("按下右键,坦克向右下动")


class Tank():
    def __init__(self):
        pass
    #移动
    def move(self):
        pass


    #射击
    def shot(self):
        pass
    #展示坦克的方法
    def display(self):
        pass
#我方坦克
class MyTank(Tank):
    def __init__(self):
        pass

class EnemyTank(Tank):
    def __init__(self):
        pass

#子弹类
class Bullet():
    def __init__(self):
        pass
    #移动
    def move(self):
        pass
    #展示子弹的方法
    def displayBullet(self):
        pass


class Wall():
    def __init__(self):
        pass
     #展示墙壁的方法
    def displayWall(self):
        pass
class Explode():
    def __init__(self):
        pass
    #展示爆炸效果的方法
    def displayExplode(self):
        pass
class Music():
    def __init__(self):
        pass
    #播放音乐
    def play(self):
        pass
if __name__=="__main__":
    MainGame().startGame()


Python 全系列/第二阶段:Python 深入与提高/游戏开发-坦克大战 19460楼
JAVA 全系列/第三阶段:数据库编程/MySQL数据库 19462楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/手写服务器项目(旧) 19463楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 19464楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 19465楼
JAVA 全系列/第六阶段:项目管理与SSM框架/Mybatis 19467楼
JAVA 全系列/第二十阶段:租房网(Spring Cloud最新架构)/Livegoods第五天 19468楼

react-router-demo.zip

老师,为什么我会报下面的错误呢?是什么意思

1651916913(1).png

WEB前端全系列/第十四阶段:React知识体系/React路由 19469楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637