flappy48源码_flappy2048

hacker|
110

文章目录:

flappy48怎么玩?flappy48玩法攻略

“Flappy

Bird”和“2048”毋庸置疑是两款非常容易让人深陷其中的游戏,两款游戏的操作都非常简单,前者只需要简单的点击屏幕让小鸟飞过中间的障碍物;而后

者则是通过不断的叠加来产生2048这个数字方块。近日在iOS平台上出现了整合两款游戏的“Flappy48”游戏,玩家除了需要控制放方块通过障碍的

同时还需要同2048一样整合相同的数据并尝试叠加到2048。

对于大部分玩家来说“Flappy

Bird”和“2048”已经非常的困难了,但是通过将两者结合游戏难度再次提升到新的高度,除了需要躲避障碍物之外还需要对数字进行叠加,然后操作多个方块通过障碍物,其中一个方块碰到就会失败。

猜你还喜欢:

2048游戏网址

2048小游戏链接地址

flappy

bird修改教程:flappy

bird怎么修改步骤详解

怎样使用Unity3D开发Flappy Bird游戏

怎么说呢,想要在知道这里教会这个问题恐怕不够,况且直接问如何做XX的游戏这样的大问题,一般是不会有什么收获的。

可以参考一个叫Flappy Bird Clone的项目的源代码。

基本上原理是这样:鸟是一个对象,背景是背景,水管是一个对象

然后不断在屏幕外定时生成随机高度的水管,鸟的坐标不断向前,摄像机紧跟鸟儿,当鼠标左键点击时,对鸟的rigidbody对象加一个向上的力,至于向下掉落,本身的重力就足够了,效果还不错。当鸟碰到水管时,停止游戏,记录分数……

flappy bird怎么改变demo中的管道python

首先呢,我们需要创建一个对象,这个对象取名为Bird。

Bird具有以下属性:

1)图片。具体来说就是他长什么样。

2)大小。长多大。

3)是否撞到了。还记得游戏规则么,撞到就gameover了。

4)速度。每一帧移动多远。

这只bird没事还会往下掉,点一下就会往上飞,这就是两个动作。

于是,编写了如下代码:

[python] view plain copy

class Bird(pygame.sprite.Sprite):

def __init__(self,bird_img,pos):

pygame.sprite.Sprite.__init__(self)

self.image = bird_img

self.rect = self.image.get_rect()

self.rect.midbottom = pos

self.speed = 1

self.is_hit = False

def move(self):

self.rect.left += self.speed

self.rect.top += self.speed

def click(self):

self.rect.top -= 1.5*self.speed

还记得最开始我说过,flappy bird所有的图片资源都在一张图片altas.png上。

pygame提供了一个函数,可以让我们方便的取出资源。

我们先载入图片

[python] view plain copy

#load img

game_img = pygame.image.load('res/img/atlas.png')

bg_rect = pygame.Rect(0,0,288,512)

bg_img = game_img.subsurface(bg_rect).convert()

然后分别获取需要的图片。

[python] view plain copy

#config bird

bird_rect = pygame.Rect(0,970,48,48)

bird_pos = [100,230]

bird_img = game_img.subsurface(bird_rect).convert_alpha()

bird = Bird(bird_img,bird_pos)

这样 bird和bg(background)的图片就落实了。

最后,因为是在电脑上运行,点屏幕就需要改成相应的按下空格键。

[python] view plain copy

key_pressed = pygame.key.get_pressed()

if not bird.is_hit:

if key_pressed[K_SPACE]:

bird.click()

终于,今天的任务完成了,虽然,虽然程序有点小bug,但这是下一篇要说的问题了。

完整代码如下:

[python] view plain copy

# -*- coding: utf-8 -*-

"""

@author: Kevio

"""

import pygame

from pygame.locals import *

from sys import exit

import random

# configure

screen_w = 288

screen_h = 512

# class

class Bird(pygame.sprite.Sprite):

def __init__(self,bird_img,pos):

pygame.sprite.Sprite.__init__(self)

self.image = bird_img

self.rect = self.image.get_rect()

self.rect.midbottom = pos

self.speed = 1

self.is_hit = False

def move(self):

self.rect.left += self.speed

self.rect.top += self.speed

def click(self):

self.rect.top -= 1.5*self.speed

# init the game

pygame.init()

screen = pygame.display.set_mode((screen_w,screen_h))

pygame.display.set_caption('flappy bird @Kevio')

#load img

game_img = pygame.image.load('res/img/atlas.png')

bg_rect = pygame.Rect(0,0,288,512)

bg_img = game_img.subsurface(bg_rect).convert()

#config bird

bird_rect = pygame.Rect(0,970,48,48)

bird_pos = [100,230]

bird_img = game_img.subsurface(bird_rect).convert_alpha()

bird = Bird(bird_img,bird_pos)

#config the game

score = 0

clock = pygame.time.Clock()

running = True

while running:

clock.tick(60)

screen.fill(0)

screen.blit(bg_img,(0,0))

if not bird.is_hit:

screen.blit(bird.image,bird.rect)

bird.move()

else:

running = False

pygame.display.update()

for event in pygame.event.get():

if event.type == pygame.QUIT:

pygame.quit()

exit()

key_pressed = pygame.key.get_pressed()

if not bird.is_hit:

if key_pressed[K_SPACE]:

bird.click()

1条大神的评论

  • avatar
    访客 2022-07-17 下午 04:42:50

    ] view plain copy# -*- coding: utf-8 -*- """ @author: Kevio """ import pygame from pygame.local

发表评论