过分了,别人用来做桌面应用开发,这家伙却用来撩妹(4)–双向奔赴的火柴人

过分了,别人用来做桌面应用开发,这家伙却用来撩妹(4)–双向奔赴的火柴人

大家好,又见面了,我是全栈君。

目录

一、运动的火柴人。

二、跟随移动方向奔跑的火柴人

三、自动移动的火柴人


可还记得上期我们研究的会奔跑的机器人吗?

过分了,别人用来做桌面应用开发,这家伙却用来撩妹(4)--双向奔赴的火柴人

没错,就是他,整个画面一闪一闪的,非常不好看。

而且,只能单项奔跑,不能双向奔跑。那这期,我们就一起来更加深入的研究一下吧。

一、运动的火柴人。

1、解决闪屏的问题

import tkinter,time
from tkinter import *
 
tk = tkinter.Tk()
tk.title("窗口")  # 设置窗口名称
tk.geometry("200x220+200+220")
w = tk.winfo_screenwidth()  # 获取屏幕宽
h = tk.winfo_screenheight()  # 获取屏幕高
cn = Canvas(tk, height=h, width=w, bg="white")  # bg="pink"
list,a=[],1
for i in range(1,10):
    list.append(PhotoImage(file="robot_" + str(i) + ".PNG"))#图片列表
    
def update_test(e):
    tk.update()
    global a#设置全局变量
    for i in range(1,10):
        if a==9:
            a=1
            cn.create_image(100,100, image=list[0])
        else:
            cn.create_image(100,100, image=list[a])
            a+=1
        break
    cn.pack()
tk.bind("<Configure>", update_test)
tk.mainloop()

这样,我们的火柴人就不会闪烁了。

二、跟随移动方向奔跑的火柴人

我们上面已经实现了单方向奔跑的火柴人,接下来我们来研究一下双向奔跑的火柴人。

过分了,别人用来做桌面应用开发,这家伙却用来撩妹(4)--双向奔赴的火柴人

是不是有点内味了,那我们来看源代码:

import tkinter,time
from tkinter import *
from PIL import ImageTk, Image
​
tk = tkinter.Tk()
tk.title("窗口")  # 设置窗口名称
tk.geometry("200x220+600+620")
# tk.overrideredirect(True)
w = tk.winfo_screenwidth()  # 获取屏幕宽
h = tk.winfo_screenheight()  # 获取屏幕高
cn = Canvas(tk, height=h, width=w, bg="white")  # bg="pink"
list,list1,a,b=[],[],1,1
for i in range(1,8):
    image1 = Image.open("../test/123/123_" + str(i) + ".PNG")  # 打开图片
    image = image1.resize((200, 220))  # 设置图片大小
    photo = ImageTk.PhotoImage(image)  # 引入图片
    list.append(photo)
    image1 = Image.open("../test/124/123_" + str(i) + ".PNG")  # 打开图片
    image = image1.resize((200, 220))  # 设置图片大小
    photo = ImageTk.PhotoImage(image)  # 引入图片
    list1.append(photo)
def image(list):
    global a
    for i in range(1, 8):
        if a == 7:
            a = 1
            cn.create_image(100, 100, image=list[0])
            a += 1
        else:
            cn.create_image(100, 100, image=list[a])
            a += 1
        break
def xy(x,y):
    return x-10,y-10
​
def update_test(e):
    time.sleep(0.1)
    tk.update()
    x = tk.winfo_x()
    y=tk.winfo_y()
    tk.geometry("200x220+%s+%s"%(x,y))
    global b
    if x<b:image(list)
    elif x==b:pass
    else:image(list1)
    b=x
    cn.pack()
tk.bind("<Configure>", update_test)
tk.mainloop()

原理也是一样的哦,主要是增加了另外一个方向奔跑的小人。

三、自动移动的火柴人

在上面已经掌握了移动的要诀,那下面让他自己移动起来。

主要代码段:

 tk.geometry("200x220+%s+%s"%(x,y))

向左移动:

 tk.geometry("200x220+%s+%s"%(x-10,y))  

向右移动:

 tk.geometry("200x220+%s+%s"%(x+10,y))  

向上移动:

 tk.geometry("200x220+%s+%s"%(x,y-10))  

向下移动​:

 tk.geometry("200x220+%s+%s"%(x,y+10))  

推荐​:

王者荣耀最低战力查询-王者战区修改

过分了,别人用来做桌面应用开发,这家伙却用来撩妹(4)–运动的火柴人

我裂开了,教给他如何搭建和使用代理服务器,他居然用来做这么不正经的事(爬虫,代理ip)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111349.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 初识ABP vNext(7):vue身份认证管理&租户管理

    初识ABP vNext(7):vue身份认证管理&租户管理

    2020年11月20日
    142
  • 腾讯云 上传视频_云点播系统源码

    腾讯云 上传视频_云点播系统源码 web利用腾讯云点播上传视频到云服务器第一步导入&lt;scriptsrc="//imgcache.qq.com/open/qcloud/js/vod/sdk/ugcUploader.js"&gt;&lt;/script&gt;第二步在服务端设置秘钥,我用的是javaee编写一个Signature类 所需jar包http://download.csdn.net/down…

    2025年7月4日
    0
  • SPI协议详解(图文并茂+超详细)

    SPI协议详解(图文并茂+超详细)先说串口因为之前写过一篇UART,通用串行异步通讯协议,UART的相关资料因为UART没有时钟信号,无法控制何时发送数据,也无法保证双发按照完全相同的速度接收数据。因此,双方以不同的速度进行数据接收和发送,就会出现问题。如果要解决这个问题,UART为每个字节添加额外的起始位和停止位,以帮助接收器在数据到达时进行同步;双方还必须事先就传输速度达成共识(设置相同的波特率,例如每秒9600位)。传输速率如果有微小差异不是问题,因为接收器会在每个字节的开头重新同步。相应的协议如下图所示;如果您注意到

    2022年6月18日
    84
  • 复制粘贴不到远程桌面_远程桌面无法复制到本地

    复制粘贴不到远程桌面_远程桌面无法复制到本地在远程服务器上打开任务管理器,在进程里面找到rdpclip进程(或者剪贴板监视器),点击“结束进程”打卡DOS命令符,输入rdpclip后,确认,从新打开远程剪贴服务。

    2022年8月19日
    4
  • 五分钟成为记忆王(路飞为什么能成为五皇)

    一、记忆的面纱1、记忆的含义(1)就在我嘴边上  有多少次你这样说过,就在我嘴边上,又有过多少次在你需要什么时候,任凭你如何拼命地想,就是想不起来。  当然,这问题不是你一个人才有,几乎所有的人都受到过记忆力差的困扰。这也是人类的一个最常见的不幸。(2)改变你的记忆力  自身内部,就蕴藏着一种由于记忆力差而产生的烦恼的能力。如果你真想利用这一能力的话,这能力就能使你的记忆力在几天内提高

    2022年4月16日
    32
  • Intellij idea创建springboot项目时报错Artifact contains illegal characters

    Intellij idea创建springboot项目时报错Artifact contains illegal characters

    2021年5月16日
    179

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号