如何使用pygame在随机位置生成精灵?

圆环面

香港专业教育学院一直试图使类似道奇的游戏,其中一些障碍使您成长,而另一些则使您收缩。我还计划添加一个红色,其中一个应该会让您丧命(开始时会有3条生命),还有其他各种都有自己的属性。但是,Ive在使掉落的方块随机生成的过程中遇到了一个障碍,这在广泛的游戏中都需要。

我的计划基本上是,我希望每次都在随机的位置重新生成方块,并且在某个时候我希望增加掉落方块的数量,以进一步提高难度。

这是我目前的进度。任何输入,不胜感激:

import pygame
import random

pygame.init()

win_width = 800
win_height = 600
window = pygame.display.set_mode((win_width,win_height))

pygame.display.set_caption("Roger Dodger")

black = (0,0,0)
white = (255,255,255)
red = (255,0,0)
orange = (255,127,0)
yellow = (255,255,0)
blue = (0,0,255)


clock = pygame.time.Clock()

class Collisions:
    def __init__(self, x1,y1,w1,h1,x2,y2,w2,h2):
        self.x1 = x1
        self.y1 = y1
        self.w1 = w1
        self.h1 = h1
        self.x2 = x2
        self.y2 = y2
        self.w2 = w2
        self.h2 = h2

    def checkCol(self):
        if (self.x2 + self.w2 >= self.x1 >= self.x2 and self.y2 + self.h2 >= self.y1 >= self.y2):

            return True

        elif (self.x2 + self.w2 >= self.x1 + self.w1 >= self.x2 and self.y2 + self.h2 >= self.y1 >= self.y2):

            return True

        elif (self.x2 + self.w2 >= self.x1 >= self.x2 and self.y2 + self.h2 >= self.y1 + self.h1 >= self.y2):

            return True

        elif (self.x2 + self.w2 >= self.x1 + self.w1 >= self.x2 and self.y2 + self.h2 >= self.y1 + self.h1 >= self.y2):

            return True

        else:

            return False

    def yel_col(self):
        if Collisions.checkCol(self):
            return True

    def ora_col(self):
        if Collisions.checkCol(self):
            return True


class Sprite:

    def __init__(self,x,y,width,height, color):

        self.x = x

        self.y = y

        self.width = width

        self.height = height

        self.color = color

    def render(self,):
              pygame.draw.rect(window,self.color,(self.x,self.y,self.width,self.height))



Sprite1=Sprite(win_width/2 ,win_height-60,30,30, blue)


moveX = 0

sprite2x = random.randrange(30, win_width, 30)
sprite3x = random.randrange(30, win_width, 30)

falling_pos = 0


gameLoop=True
while gameLoop:

    for event in pygame.event.get():

        if (event.type==pygame.QUIT):

            gameLoop=False

        if (event.type==pygame.KEYDOWN):

            if (event.key==pygame.K_LEFT):

                moveX = -3

            if (event.key==pygame.K_RIGHT):

                moveX = 3




    window.fill(white)

    ground = pygame.draw.rect(window, black, ((0, win_height-30), (win_width, 30)))

    Sprite1.x+=moveX

    falling_pos += 3

    Sprite2=Sprite(sprite2x,falling_pos,30,30, orange)
    Sprite3=Sprite(sprite3x, falling_pos, 30, 30, yellow)

    collisions1=Collisions(Sprite1.x,Sprite1.y,Sprite1.width,Sprite1.height,Sprite2.x,Sprite2.y,Sprite2.width,Sprite2.height)
    collisions2=Collisions(Sprite1.x,Sprite1.y,Sprite1.width,Sprite1.height,Sprite3.x,Sprite3.y,Sprite3.width,Sprite3.height)


    Sprite1.render()
    Sprite2.render()
    Sprite3.render()

    if collisions2.checkCol() and collisions2.yel_col():
       if Sprite1.width and Sprite1.height > 30:
           Sprite1.width -= 5
           Sprite1.height -= 5
           Sprite1.y += 5

    if collisions1.checkCol() and collisions1.ora_col():
       if Sprite1.width and Sprite1.height < 300:
           Sprite1.width += 5
           Sprite1.height += 5
           Sprite1.y -= 5

    if Sprite1.x < 0:
        Sprite1.x = win_width

    elif Sprite1.x > win_width:
        Sprite1.x = 0



    if falling_pos > win_height:
        falling_pos = 0

    pygame.display.flip()

    clock.tick(120)

pygame.quit()
巴特洛米耶·勒万多夫斯基(Bartlomiej Lewandowski)

为了使它们在随机的位置生成,请使用random.randint(a, b)分配开始位置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用屏幕上的随机位置永远移动精灵

来自分类Dev

生成按钮的随机位置

来自分类Dev

如何在 Unity[c#] 中每次启动游戏时在随机位置显示精灵?

来自分类Dev

如何使精灵从pygame中的随机x位置掉落

来自分类Dev

在画布中的随机位置生成图像

来自分类Dev

在pygame中单击时如何使图像移动到随机位置?

来自分类Dev

使用sed在随机位置替换字符?

来自分类Dev

将对象放置在pygame中的随机位置

来自分类Dev

Python:如何生成在随机位置上具有非零条目的向量?

来自分类Dev

SpriteKit随机位置

来自分类Dev

SpriteKit随机位置

来自分类Dev

随机位置功能

来自分类Dev

在side div的随机位置生成数字而不重叠

来自分类Dev

在圆角矩形内生成均匀分布的随机位置

来自分类Dev

尝试在随机位置生成可变数量的彩色补丁

来自分类Dev

如何使用Python在Maya中为多边形对象设置随机位置?

来自分类Dev

如何使用 Tkinter.Text 在屏幕上的随机位置显示文本

来自分类Dev

如何将按钮移动到随机位置?(迅速)

来自分类Dev

如何通过随机位置在表之间移动数据?

来自分类Dev

如何为具有随机位置的项目添加约束

来自分类Dev

如何将按钮移动到随机位置?(迅速)

来自分类Dev

如何在随机位置递归创建 1 gb 文件

来自分类Dev

如何用随机位置填充数组

来自分类Dev

如何为数组中的随机位置赋值?

来自分类Dev

使用SASS返回随机位置和颜色

来自分类Dev

R使用随机位置的预定义值填充向量

来自分类Dev

如何使用 C# 将多个游戏对象的位置设置为不同的随机位置?(Unity5.5)

来自分类Dev

Libgdx 设置随机位置

来自分类Dev

使用偏置位源生成统一的随机位

Related 相关文章

热门标签

归档