写简单游戏,学编程语言-python篇
好吧, 首先得承认这个题目写的夸大了,人才菜鸟一枚,游戏相关编程也是知道点概念。但是本人对游戏开发比较感兴趣,相信大多数喜欢玩玩游戏,因为它给人确实带来很多乐趣,而编程语言的学习最少对于我来说比较乏味了,所以学一门新语言我一般找点小东西实践一下来增加点学习的动力。今天偶然看到一本书确实值得推荐,介绍python入门和pygame的不错的外文书籍。传送门在此:http://cs.simpson.edu/files/CS_Intro_Book.pdf。
这里推荐这本入门书,因为它反复穿插了python基本语法和pygame的示例学习,我觉得这种文章组织形式确实比一般的入门介绍书籍更容易接受(对于本人来说的确如此,不知不觉1小时看了三分之一了)。做个最简单的小游戏不仅熟悉了python语法而且学到了游戏编程中的简单的图形学的只是,对于游戏开发的基础掌握还是很有帮助滴。有人可能会问到了,又引入pygame这个新框架是不是又要花大时间去熟悉它呢,其实根本不需要,因为这个框架是比较简单和易懂的 ,只需要查几个常用的接口函数和方法就能轻松写一个简单的游戏demo了,当然有其他游戏引擎知识的话,更不在话下了。其实这本书主要适合对象还是python学习的入门者,通过比较有趣的例子不仅学到了python语法而且锻炼了 游戏逻辑的实现和图形开发的基础知识,在此基础上你也可以改进示例,丰富游戏的内容了。以一个简单的示例介绍一下吧,默写书中一个最简单动画入门的例子(雪花飘落)如下:
import pygame
pygame.init()
width, height = 640, 640
green=[0,255,0]
import random
screen=pygame.display.set_mode((width, height))
done=False
pos_x=20
start_list=[]
clock=pygame.time.Clock()
for i in range(50):
x=random.randrange(0,640)
y=random.randrange(0,640)
start_list.append([x,y])
while done == False:
screen.fill([0,0,0])
for event in pygame.event.get():
# check if the event is the X button
if event.type==pygame.QUIT:
# if it is quit the game
done = True
for i in range(len(start_list)):
pygame.draw.circle(screen,green,start_list[i],2)
start_list[i][1]+=1
if start_list[i][1]>640:
y=random.randrange(-50,-10)
start_list[i][1]=y
x=random.randrange(0,640)
start_list[i][0]=x
clock.tick(20)
pygame.display.flip()
pos_x+=10
if pos_x is 180:
pos_x=20
pygame.quit()
exit(0)
我这里用green来画圆形的精灵,貌似不是雪花飘落了,应该改成叶子形状,变成绿叶坠落才比较适合吧。。哈。。:)
代码写的没啥技术含量,不过我觉得这本书带来的启示还是挺有用的,边学新语言边实现你喜欢的东西才是编程的乐趣所在吧,这也是本人记录随笔的初衷。文笔粗糙的很,继续加油吧!
写简单游戏,学编程语言-python篇的更多相关文章
- 写简单游戏,学编程语言-python篇:大鱼吃小鱼
很常见的游戏之一,实现原理并不复杂,并且参考了几个相关的代码.这边主要还是以学习编程语言和学习编程思路为重点记录一下吧.最近时间有点吃紧,只能匆忙记录一下.用pygame做的大鱼吃小鱼的游戏截图如下: ...
- 写简单游戏,学编程语言-python篇:传说哥大战剧毒术士
上篇写的动画示例其实算不上一个游戏,顶多算是利用pygame进行的图形操作,今天着手实现一个小游戏:传说哥大战剧毒术士.名字很玄乎,其实就是最简单的一个射击游戏.好了废话不多说,先上截图吧: 一.初始 ...
- 56岁潘石屹生日当天宣布要学编程语言Python,网友:地产商来抢码农饭碗了!
最近在码农界里,一个比较轰动的事情,就是地产大佬潘石屹,在56岁生日当天宣布要学习编程语言Python. 可能部分老铁不认识潘石屹,简单介绍下大佬背景: 潘石屹,1963年11月14日出生于甘肃天水, ...
- 功能强大而又简单易学的编程语言Python
Python是一种面向对象.直译式计算机程序设计语言,也是一种功能强大的通用型语言.首先,Python非常简单,以Hello World为例: Java的Hello World程序一般这么写: pub ...
- 闲扯游戏编程之html5篇--山寨版《flappy bird》源码
新年新气象,最近事情不多,继续闲暇学习记点随笔,欢迎拍砖.之前的〈简单游戏学编程语言python篇〉写的比较幼稚和粗糙,且告一段落.开启新的一篇关于javascript+html5的从零开始的学习.仍 ...
- 通过游戏学python 3.6 第一季 第九章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号--锁定次数--菜单功能'menufile
通过游戏学python 3.6 第一季 第九章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁 ...
- 通过游戏学python 3.6 第一季 第八章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账号--锁定次数
通过游戏学python 3.6 第一季 第八章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码--优化代码及注释--简单账号密码登陆--账号的注册查询和密码的找回修改--锁定账 ...
- 通过游戏学python 3.6 第一季 第二章 实例项目 猜数字游戏--核心代码--猜测次数 可复制直接使用 娱乐 可封装 函数
猜数字游戏--核心代码--猜测次数 #猜数字--核心代码--猜测次数 number=33 amount=3 count=0 while count<=amount: conversion ...
- 人工智能时代,是时候学点Python了!
“是时候学点Python了”.作为一名不怎么安分的程序员,你或许觉得,产生这样的想法并不奇怪,但学习Python却是出于自己对工作现状以及如何应对未来挑战所作出的思考.读过我以前博客的朋友,可能都知道 ...
随机推荐
- 关于PHP函数time() date() 和 strtotime() 的时区问题
最近项目中有个需求, 要记录新注册用户的次日登录情况, 于是写出了如下代码: $create_time = '用户注册时间'; //格式 Y-m-d H:i:s $time = time(); $la ...
- PSP记录个人项目耗时情况
四则运算编程 PSP记录个人项目耗时情况 PSP Personal Software Process Stages Time(%) Planning 计划 7 Estimate 估计这个任务需要多少时 ...
- golang mgo的mongo连接池设置:必须手动加上maxPoolSize
本司礼物系统使用了golang的 mongo库 mgo,中间踩了一些坑,总结下避免大家再踩坑 golang的mgo库说明里是说明了开启连接复用的,但观察实验发现,这并没有根本实现连接的控制,连接复用仅 ...
- C#中Cookie的概述及应用
1.Cookie简介 Cookie 提供了一种在 Web 应用程序中存储用户特定信息的方法.例如,当用户访问您的站点时,您可以使用 Cookie 存储用户首选项或其他信息.当该用户再次访问您的网站时, ...
- canvas学习笔记:canvas对图片的像素级处理--ImageData的应用
学习了canvas的基本绘图功能后,惊喜的发现canvas对图片数据也有相当强大的处理功能,能够从像素级别操作位图,当然[lte ie8]不支持. 主要的函数有三个: ctx.createImageD ...
- CSS属性选择符
属性选择符: E[att] 选择具有att属性的E元素. <style type="text/css"> a[class]{ background-color: red ...
- c语言基础表达式, 关系运算符, 逻辑运算符, 位运算符, 数据的取值范围, 分支结构(if...else, switch...case)
1.表达式: 表达式的判断是有无结果(值), 最简单的表达式是一个常量或变量, 如:12, a, 3 + 1, a + b, a + 5 都是表达式 2.BOOL(布尔)数据类型: c语言中除了基本数 ...
- μC/OS-Ⅲ系统的任务切换和任务调度
一.任务切换 在操作系统中当任务需要从一个任务切换到另外一个任务时,要将当前任务的现场保存到当前任务的堆栈中(当前任务现场主要指CPU相关寄存器),然后回复新任务的现场并执行新任务.这个叫做上下文切换 ...
- IE下new Date不支持传参数的解决
在FF gloogle浏览器中 用js实例化Date对象时 各种参数都可以换传啊. var date = new Date("2014-10-1 10:24:31"); var d ...
- js图片拖放原理(很简单,不是框架,入门基础)
<html> <meta> <script src='jquery-1.8.3.min.js'></script> <script> /* ...