会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 134284个问题
Python全系列/第三阶段:Python 网络与并发编程/并发编程 17461楼

#主要包括坦克的创建,显示,移动及射击的功能

import pygame
COLOR_BLUE=pygame.Color(0,0,0)
COLOR_red=pygame.Color(255,0,0)
class MainGame():
    window=None
    my_tank=None
    def __init__(self):
        pass
    #开始游戏方法
    def startGame(self):
    #加载主窗口
       pygame.display.init()
#创建窗口
       MainGame.window=pygame.display.set_mode([700,600])
    #初始化我方坦克
       MainGame.my_tank=Tank(350,300)
    #设置窗口标题
       pygame.display.set_caption("坦克大战")
       while True:
         MainGame.window.fill(COLOR_BLUE)
         self.eventlist()

         MainGame.window.blit(self.getTextSurface("剩余敌方坦克数量%d"%6),(5,5))
         #调用坦克的显示方法
         MainGame.my_tank.displayTank()
         pygame.display.update()
#结束游戏
    def endGame(self):
        print("谢谢使用,欢迎下次使用")
        exit()
    def getTextSurface(self,text):
        pygame.font.init()
        font=pygame.font.SysFont("kaiti",18)
        testSurface=font.render(text,True,COLOR_red)
        return testSurface
    def eventlist(self):
        enentlists=pygame.event.get()
        for event in enentlists:
            if event.type==pygame.QUIT:
                self.endGame()
            if event.type==pygame.KEYDOWN:
                if event.key==pygame.K_UP:
                    MainGame.my_tank.direction=="U"
                    MainGame.my_tank.move()
                    print("按下上键,坦克向上移动")
                if event.key == pygame.K_DOWN:
                    MainGame.my_tank.direction == "D"
                    MainGame.my_tank.move()
                    print("按下下键,坦克向下移动")
                if event.key == pygame.K_LEFT:
                    MainGame.my_tank.direction == "L"
                    MainGame.my_tank.move()
                    print("按下左键,坦克向左移动")
                if event.key == pygame.K_RIGHT:
                    MainGame.my_tank.direction == "R"
                    MainGame.my_tank.move()
                    print("按下右键,坦克向右移动")


class Tank():
    #添加距离左边left,距离上边top
    def __init__(self,left,top):
    #保存加载的图片
       self.images={"U":pygame.image.load("imgs/p1tankU.gif"),
                    "D": pygame.image.load("imgs/p1tankD.gif"),
                    "L": pygame.image.load("imgs/p1tankL.gif"),
                    "R": pygame.image.load("imgs/p1tankR.gif"),
                    }
    #(属性)方向
       self.direction="U"

    #根据当前图片的方向获取图片
       self.image=self.images[self.direction]
    #根据图片获取区域
       self.rect=self.image.get_rect()
    #设置区域的left和top
       self.rect.left = left
       self.rect.top = top
       self.speed=10

    #坦克的移动方法
    def move(self):


      # 判断坦克的方向进行移动

      if self.direction == 'L':

        if self.rect.left > 0:
         self.rect.left -= self.speed
      elif self.direction == 'U':

        if self.rect.top > 0:
         self.rect.top -= self.speed
      elif self.direction == 'D':

        if self.rect.top + self.rect.height < 350:
          self.rect.top += self.speed
      elif self.direction == 'R':

        if self.rect.left + self.rect.height < 300:

          self.rect.left += self.speed
#碰撞墙壁的方法
    def hitwalls(self):
        pass
#展示坦克
    def displayTank(self):
      #获取展示的对象
        self.image=self.images[self.direction]
      #调用blit方法显示
        MainGame.window.blit(self.image,self.rect)
#我方坦克类继承坦克类,主要包括创建与敌方坦克的碰撞方法
class MyTank(Tank):
    def __init__(self):
        pass
#碰撞敌方坦克的方法
    def hitEnemyTank(self):
        pass

#敌方坦克继承坦克类,主要包括创建于我方坦克的碰撞方法
class EnemyTank(Tank):
    def __init__(self):
        pass
    def hitMyTank(self):
        pass

#子弹类:主要包括子弹的创建,显示及移动的功能
class Bullet():
    def __init__(self):
        pass
#子弹的移动方法
    def bulletMove(self):
        pass
    #展示子弹的方法
    def displaybullet(self):
        pass
    #我方子弹碰撞敌方坦克的方法
    def hitEnemy(self):
        pass
    #敌方子弹与我方坦克的碰撞方法
    def hitMyTank(self):
        pass
    #子弹与墙壁的碰撞
    def hitwalls(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()

46.jpg



Python全系列/第二阶段:Python 深入与提高/游戏开发-坦克大战 17462楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 17464楼
Python全系列/第二阶段:Python 深入与提高/文件处理 17468楼

1.假设有2个实体类 Test1 Test2 如下

package com.ruoyi.project.audit.planmanagement.domain;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * @version 1.0
 * @FileName Test1
 * @DESC 测试1
 * @create 2020/7/16 8:52
 */
public class Test1 implements Serializable
{
    private static final long serialVersionUID = 1L;

    private Long t1_id;
    private String name;
    private String title;

    private List<Test2> list = new ArrayList<Test2>();

    public Long getT1_id() {
        return t1_id;
    }

    public void setT1_id(Long t1_id) {
        this.t1_id = t1_id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public List<Test2> getList() {
        return list;
    }

    public void setList(List<Test2> list) {
        this.list = list;
    }

    @Override
    public String toString() {
        return "Test1{" +
                "t1_id=" + t1_id +
                ", name='" + name + '\'' +
                ", title='" + title + '\'' +
                ", list=" + list +
                '}';
    }

    public Test1() {
    }

    public Test1(Long t1_id, String name, String title, List<Test2> list) {
        this.t1_id = t1_id;
        this.name = name;
        this.title = title;
        this.list = list;
    }
}
package com.ruoyi.project.audit.planmanagement.domain;

import java.io.Serializable;

/**
 * @version 1.0
 * @FileName Test2
 * @DESC 测试2
 * @create 2020/7/16 8:53
 */
public class Test2 implements Serializable
{
    private static final long serialVersionUID = 1L;

    private Long t2_id;

    private String name;

    private String Type;

    private Test1 test1;

    @Override
    public String toString() {
        return "Test2{" +
                "t2_id=" + t2_id +
                ", name='" + name + '\'' +
                ", Type='" + Type + '\'' +
                ", test1=" + test1 +
                '}';
    }

    public Long getT2_id() {
        return t2_id;
    }

    public void setT2_id(Long t2_id) {
        this.t2_id = t2_id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getType() {
        return Type;
    }

    public void setType(String type) {
        Type = type;
    }

    public Test1 getTest1() {
        return test1;
    }

    public void setTest1(Test1 test1) {
        this.test1 = test1;
    }

    public Test2() {
    }

    public Test2(Long t2_id, String name, String type, Test1 test1) {
        this.t2_id = t2_id;
        this.name = name;
        Type = type;
        this.test1 = test1;
    }
}

问题:
前台form表单新增Test1,内容包含了2个实体类的内容,其中Test2的内容可以为多条。
现在Controller层接收数据时
@PostMapping("/XXX")
public String getTest(Test1 t1)

疑问点:
这里直接用实体类Test1接收的话 这个对象中的List属性里是否存入了 1个或多个Test2对象?

请老师指点


JAVA 全系列/第九阶段:Spring Boot实战/Spring Boot 17471楼
JAVA 全系列/第七阶段:项目管理与SSM框架/Mybatis 17472楼

老师,麻烦看一下是哪里出了问题。按照操作,最后计算器显示页面0没有跨两列

from tkinter import *


class Application(Frame):
    def __init__(self, master=None):
        super().__init__(master)  # super()代表的是父类定义,而不是父类对象
        self.master = master      # 定义master属性
        self.pack()
        self.create()

    def create(self):
        btnText = (('MC', 'M+', 'M-', 'MR'),
                   ("C", '±', '/', 'x'),
                   (7, 8, 9, '-'),
                   (4, 5, 6, '+'),
                   (1, 2, 3, '='),
                   (0, '.'))
        Entry(self).grid(row=0, column=0, columnspan=4, pady=10)

        for rindex, r in enumerate(btnText):
            for i, ii in enumerate(r):
                if ii == '=':
                    Button(self, text=ii, width=2) \
                        .grid(row=rindex + 1, column=i, rowspan=2, sticky=NSEW)
                elif ii == '0':
                    Button(self, text=ii, width=2) \
                        .grid(row=rindex + 1, column=i, columnspan=2, sticky=NSEW)
                elif ii == '.':
                    Button(self, text=ii, width=2) \
                        .grid(row=rindex + 1, column=i+1, sticky=NSEW)
                else:
                    Button(self, text=ii, width=2)\
                        .grid(row=rindex+1, column=i, sticky=NSEW)

if __name__ == '__main__':
    root = Tk()
    root.geometry("400x400+400+300")
    root.title('计算器页面')
    app = Application(master=root)

    root.mainloop()


Python全系列/第二阶段:Python 深入与提高/GUI编程(隐藏) 17474楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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