python キャラクタをひょこひょこ動かすコードです
←や→キーで少し左右に動きます
import pygame
from pygame.locals import *
import sys
def main():
pygame.init() # Pygameの初期化
screen = pygame.display.set_mode((800, 600)) # 800*600の画面
px=120
py=100
ph=99
pw=99
gMap = pygame.image.load("hito.png").convert_alpha() #勇者 50x50
ct=0
ck = pygame.time.Clock()
while True:
ck.tick(30) #1秒間で30フレームになるように33msecのwait
screen.fill((255,255,255))
ct+=1
#n1=ct%4
n1=int(ct/5)%4
if n1 == 0:
screen.blit(gMap ,(px,py),(0,0,pw,ph))
elif n1 == 1:
screen.blit(gMap ,(px,py),(101,0,pw,ph))
elif n1 == 2:
screen.blit(gMap ,(px,py),(1,101,pw,ph))
elif n1 == 3:
pygame.transform.rotate(gMap, 30)
screen.blit(gMap ,(px,py),(101,101,pw,ph))
pygame.display.update() # 画面更新
# イベント処理
for event in pygame.event.get(): # イベントキューからキーボードやマウスの動きを取得
if event.type == QUIT: # 閉じるボタンが押されたら終了
pygame.quit() # Pygameの終了(ないと終われない)
sys.exit() # 終了(ないとエラーで終了することになる)
elif event. type == KEYDOWN:
if event.key==K_LEFT:
px -=5#横方向の速度
elif event.key==K_RIGHT:
px +=5#横方向の速度
if __name__ == "__main__":
main()
動作環境
Python3以上とpygameが必要です
pygameがない場合、
pip install pygame
でインストールしてください
起動方法
適当な場所にコードと画像を保存します。
ファイル名は適当でいいですが、よくわからない人はとりあえず "bg.py" という名で、
画像はコードと同じフォルダに"hito.png"という名で保存してください。
python bg.py
で動きます。
縄跳びっぽ動き
上矢印キーで二重跳び、下矢印キーでもどります
import pygame
from pygame.locals import *
import sys
def main():
pygame.init() # Pygameの初期化
screen = pygame.display.set_mode((800, 600)) # 800*600の画面
px=120
py=100
ph=95
pw=95
stx=4
sty=4
gMap = pygame.image.load("hito.png").convert_alpha() #勇者 50x50
ct=0
ck = pygame.time.Clock()
fg=0
while True:
ck.tick(30) #1秒間で30フレームになるように33msecのwait
screen.fill((255,255,255))
ct+=1
if fg==0:
n1=int(ct/5)%2
if n1 == 0:
screen.blit(gMap ,(px,py),(stx,sty,pw,ph))
elif n1 == 1:
screen.blit(gMap ,(px,py),(100+stx,100+sty,pw,ph))
if fg==1:
n1=int(ct/5)%4
if n1 == 0:
screen.blit(gMap ,(px,py),(stx,sty,pw,ph))
elif n1 == 1:
screen.blit(gMap ,(px-2,py-14),(100+stx,sty,pw,ph))
elif n1 == 2:
screen.blit(gMap ,(px-2,py-14),(stx,100+sty,pw,ph))
elif n1 == 3:
screen.blit(gMap ,(px,py),(100+stx,100+sty,pw,ph))
pygame.display.update() # 画面更新
# イベント処理
for event in pygame.event.get(): # イベントキューからキーボードやマウスの動きを取得
if event.type == QUIT: # 閉じるボタンが押されたら終了
pygame.quit() # Pygameの終了(ないと終われない)
sys.exit() # 終了(ないとエラーで終了することになる)
elif event. type == KEYDOWN:
if event.key==K_LEFT:
px -=5 #横方向の速度
elif event.key==K_RIGHT:
px +=5 #横方向の速度
elif event.key==K_UP:
fg = 1 #横方向の速度
elif event.key==K_DOWN:
fg = 0 #横方向の速度
if __name__ == "__main__":
main()
縄跳
雨つぶにあたるとhpが削られていきます
遊び方:左右キーで左右、もう一度押すとスピードアップします
import pygame
from pygame.locals import *
import sys
import random
class Rain():
def __init__(self):
self.rx=random.randint(1,800)
self.ry=random.randint(1,100)
self.rvy= 0
self.ray= 1
self.isStart=False
self.gMap = pygame.image.load("hito.png").convert_alpha() #勇者 50x50
def update(self,px,py) :
hit=0
r=random.randint(1,100)
if r==3:
self.isStart=True
if self.isStart:
self.rvy+=self.ray
self.ry+=self.rvy
if self.ry>800:
self.ry=30
self.rvy=0
self.isStart=False
if px<self.rx<px+100 and py<self.ry<py+100:
#print("hit")
hit=1
self.isStart=False
return hit
def draw(self,screen):
if self.isStart:
screen.blit(self.gMap ,(self.rx,self.ry),(3,203,10,10))
def main():
pygame.init() # Pygameの初期化
screen = pygame.display.set_mode((800, 500)) # 800*600の画面
px=40
py=300
ph=95
pw=95
pv=2
php=100
gMap = pygame.image.load("hito.png").convert_alpha() #勇者 50x50
ct=0
ck = pygame.time.Clock()
rainNum=15
Rs=[]
for i in range(rainNum):
R=Rain()
Rs.append(R)
while True:
ck.tick(30) #1秒間で30フレームになるように33msecのwait
screen.fill((255,255,255))
for R in Rs:
hit = R.update(px,py)
R.draw(screen)
if hit==1:
php-=1
print(php)
px+=pv
ct+=1
n1=int(ct/5)%4
if pv<0:
if n1 == 0:
screen.blit(gMap ,(px,py),(3,3,pw,ph))
elif n1 == 1:
screen.blit(gMap ,(px,py),(103,3,pw,ph))
elif n1 == 2:
screen.blit(gMap ,(px,py),(3,103,pw,ph))
elif n1 == 3:
screen.blit(gMap ,(px,py),(103,103,pw,ph))
else:
if n1 == 3:
screen.blit(gMap ,(px,py),(203,3,pw,ph))
elif n1 == 2:
screen.blit(gMap ,(px,py),(303,3,pw,ph))
elif n1 == 1:
screen.blit(gMap ,(px,py),(203,103,pw,ph))
elif n1 == 0:
screen.blit(gMap ,(px,py),(303,103,pw,ph))
pygame.display.update() # 画面更新
# イベント処理
for event in pygame.event.get(): # イベントキューからキーボードやマウスの動きを取得
if event.type == QUIT: # 閉じるボタンが押されたら終了
pygame.quit() # Pygameの終了(ないと終われない)
sys.exit() # 終了(ないとエラーで終了することになる)
elif event. type == KEYDOWN:
if event.key==K_LEFT:
#print("l")
if pv >0:
pv =-2
else:
pv = -5
elif event.key==K_RIGHT:
if pv <0:
pv=2
else:
pv =5
if __name__ == "__main__":
main()