python游戏编程必备_向后滚动的背景三版本

python游戏编程必备_向后滚动的背景三版本

李兴球Python向后滚动的背景


在电子游戏开发中,我们可以看到角色向前移动,但是它的x坐标并没有改变,这都是由于相对运动所导致的。实际上是背景图片在向后移动。
下面是版本一,用纯粹的turtle模块制作的.

"""
   turtle版向后滚动的背景.py
   本程序把两个和屏幕大小一样的海龟对象,
   错开屏幕宽度的距离,以实现向后滚动效果。
"""
import time
from turtle import Turtle,Screen,TK,Shape

w,h = 480,360 
screen = Screen()
screen.tracer(0,0)
screen.setup(480,360)
screen.title('turtle版向后滚动的背景by李兴球')

bg = TK.PhotoImage(file='1.png')  
sp = Shape('image',bg)            # 新建造型
screen.addshape('bg',sp)          # 把造型注册到屏幕

bg1 = Turtle(shape='bg')          # 新建背景1  
bg1.penup()                       # 背景1抬笔 
bg1.speed(0)
bg2 = bg1.clone()                 # 克隆背景1为bg2 
bg2.setx(w)                       # 错位bg2

while 1:
    pass

下面是有tkinter制作的版本。

"""
tkinter版向后滚动的背景.py
本程序在画布上新建两张图片,
并且使它们错开画布的一个宽度距离,
通过画布的move方法移它们,从而实现滚动背景效果。
"""
import time
from tkinter import *
from PIL import Image,ImageTk

root = Tk()
root.title('kinter版向后滚动的背景by李兴球')

w,h = 480,360
cv = Canvas(width=w,height=h)                  # 新建画布
cv.pack()

bgpic = Image.open('1.png')
bgpic = ImageTk.PhotoImage(bgpic)

bg1 = cv.create_image((w/2,h/2),image=bgpic)   # 创建图像bg1
bg2 = cv.create_image((1.5*w,h/2),image=bgpic) # 创建图像bg2

while True:
    pass

下面是用gameturtle模块制作的版本,此版本制作的代码最简单,最好理解。

"""
   gameturtle版向后滚动的背景.py
   本程序新建两个角色,通过错开一个画布宽度的范围,
   从而实现向后滚动的背景效果。
"""
from gameturtle import *

root = Tk()
root.title('gameturtle版向后滚动的背景by李兴球')

w,h = 480,360
cv = Canvas(width=w,height=h)
cv.pack()

bgpic = Image.open('1.png')
bg1 = GameTurtle(cv,bgpic)                 # 新建背景1(默认在中间)
bg2 = GameTurtle(cv,bgpic,pos=(1.5*w,h/2)) # 新建背景2

while True:
    bg1.addx(-2)                           # 背景1的x坐标减小 
    if bg1.xcor() <= -w/2:bg1.setx(1.5*w) 
    bg2.addx(-2)
    if bg2.xcor() <= -w/2:bg2.setx(1.5*w)  # 背景2的x坐标减小
    cv.update()                            # 更新画布显示
    time.sleep(0.01)

需要以上三个程序完整源代码,及相关素材请

成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)

李兴球

李兴球的博客是Python创意编程原创博客