游戏

贪吃蛇系列之十一——总结

北城以北 提交于 2021-01-23 23:10:57
好了,在开始我们的总结之前,我们先来把上一个项目中的那个BUG修复了。修复的方法呢也很简单,我们在Snake类中添加一个方法,代码如下: /** * 判断蛇是否吃到了自己的身体 * @return 如果蛇吃到了自己的身体则返回true,否则返回false */ public boolean isEatBody(){ Body head = snakeBody.getFirst(); for(int i = 1; i < snakeBody.size(); i++){ Body body = snakeBody.get(i); if(head.x == body.x && head.y == body.y){ return true; } } return false; } 有了这个方法之后,我们在蛇的move()方法中添加进对这个状况的判断,如下: //判断蛇是否吃到了石头或者是自己的身体 if(isEatStone() || isEatBody()){ die(); } 那么至此,我们的游戏大体上就算完成了,最后呢,我修改了Snake.Body类中的drawMe的实现,使得我们的Snake有了一个红色的头,这个呢我就不贴代码了,大家看源代码吧,下面还是给一张我们最后完成的效果图: 这个项目呢,第一阶段呢我们就到这里结束了,上图呢就是最后一个项目运行后的截图了,呵呵,是不是很有爱呢

DX下实现图片的遮罩(Mask)

独自空忆成欢 提交于 2021-01-17 18:26:39
虽然传统的用含遮罩信息的24bit图片来保存一个32bit的图像已经很少见了(以前的游戏比较常见),基本上随着png的流行,已经让32bit格式的图像普及网络以及游戏界了,当然更多的游戏采用dx原生支持的dds,或者可以自定义形状的更加灵活的tga格式等.不过这里还是介绍下在DX下Mask的实现,因为我的项目里涉及到可能要使用旧的游戏资源. 储存mask信息的图片: D3DLOCKED_RECT locked_rect; temp->tex->tex->LockRect(0, &locked_rect, NULL, 0); BYTE *pByte = (BYTE *) locked_rect.pBits; BYTE *pmaskByte = (BYTE *) locked_rect.pBits + width*4; int iOffset = locked_rect.Pitch/2; //偏移字节数 int i=0; for( int iRow=0; iRow<height; iRow++ ) { for( int iCol=0; iCol<width; iCol++ ) { masked_pixel_buf[i] = pByte[0]; masked_pixel_buf[i+1] = pByte[1]; masked_pixel_buf[i+2] = pByte[2];

移动游戏产业的五大趋势

流过昼夜 提交于 2021-01-08 22:54:18
在过去五年中,移动游戏行业欣欣向荣发展,凭借平板和智能手机硬件上的整体提升,以及各大移动设备操作系统平台的良性发展。移动设备上的游戏也受到了越来越多用户的欢迎,并且为行业带来了真正的利润。今日,Mashable 根据市场调研公司 Mintel 所发布的移动游戏行业年度报告,提出了该行业五大趋势。 Freemium 模式具有很好的市场潜力。 平板设备的玩家下载更多、游戏更多。 玩家渴望多人游戏模式和社交功能。 口碑传播是游戏下载的关键。 热门游戏来自于任何大小规模的游戏公司。 移动游戏行业让许多软件开发者特别是中小规模的游戏公司看到了成功的机会。如果这些公司能开发出质量过硬的游戏,并且融合入当下流行的社交元素,选用合适的平台和营销策略,都会有机会成为下一个 Popcap 或者 Zynga。 来源: oschina 链接: https://my.oschina.net/u/96791/blog/28241

Make Games with Python & Pygame (1)

空扰寡人 提交于 2020-12-25 20:05:03
看见这本书很有意思,利用Python和Pygame模块进行游戏开发,边学习边翻译边写心得。 http://download.csdn.net/detail/abclixu123/4582805 这是真本书的下载地址。 第二章介绍Pygame的一些基础知识。开始也是以经典的Hello World开始。所用的开发环境就是安装Python后自带的IDLE。 HelloWorld程序如下: import pygame, sys from pygame.locals import * pygame.init() DISPLAYSURF = pygame.display.set_mode((400,300)) pygame.display.set_caption('Hello World') while True: for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() pygame.display.update() 这个程序运行后就是一个简单的黑色窗口。 对这个程序有几点说明 需要包含Pygame模块,即import pygame 在进行任何具体的Pygame的操作之前,都要进行Pygame的初始化,即pygame.init() DISPLAYSURF = pygame.display

Make Games with Python & Pygame (5)

六眼飞鱼酱① 提交于 2020-12-25 18:51:59
接着贪吃蛇的下面一章就是俄罗斯方块,这也是我以前喜欢玩的游戏之一。它的代码量也比贪吃蛇多多了,有大约500行。不过整个思路很容易的。 文章先介绍了关于 俄罗斯方块游戏的几个术语 。 边框 ——由10*20个空格组成,方块就落在这里面。 盒子 ——组成方块的其中小方块,是组成方块的基本单元。 方块 ——从边框顶掉下的东西,游戏者可以翻转和改变位置。每个方块由4个盒子组成。 形状 ——不同类型的方块。这里形状的名字被叫做T, S, Z ,J, L, I , O。如下图所示: 模版 ——用一个列表存放形状被翻转后的所有可能样式。全部存放在变量里,变量名字如S_SHAPE_TEMPLATE or J_SHAPE_TEMPLATE 着陆 ——当一个方块到达边框的底部或接触到在其他的盒子话,我们就说这个方块着陆了。那样的话,另一个方块就会开始下落。 下面先把代码敲一遍,试着了解作者意图,体会俄罗斯方块游戏的制作过程。 import random, time, pygame, sys from pygame.locals import * FPS = 25 WINDOWWIDTH = 640 WINDOWHEIGHT = 480 BOXSIZE = 20 BOARDWIDTH = 10 BOARDHEIGHT = 20 BLANK = '.' MOVESIDEWAYSFREQ = 0.15

LBS简要分析

岁酱吖の 提交于 2020-11-17 04:49:21
LBS概况 LBS (Location Based Service,基于地理位置的服务),是通过电信运营商的无线网络或者外部定位方式(GPS)获取移动终端的位置信息,在 GIS (Geographic Information System,地理信息系统)的支持下提供的一种增值业务 LBS现状 国内外百花齐放 LBS被认为是移动领域的杀手级业务,普遍被行业看好,也有众多公司试水这一领域。在国外,2009年3月成立的Foursquare 是LBS的鼻祖,仅用一年时间就有了100万的用户群,甚至传言要被雅虎以一亿美金收购 国内的LBS市场已经热的发烫,2010年初,拉手网、玩转四方、街旁等创业公司纷纷涌现,网易、腾讯、新浪等门户公司也纷纷投入到LBS的研发中,甚至中国移动等传统通信厂商也开始试水LBS。在投资方面,同众多模仿国外成功的产品一样,也能拿到可观的投资 技术成熟,商业模式尚不明确 LBS相对其他移动互联网产品,技术门槛相对较低,操作起来简单有效,现在一些智能手机利用GPS的定位已经可以达到10米内的精度,因此可以准确定位到某一处商家,某一栋大楼,这在靠基站定位的时代是不可想象的 由于本身不具有目的性和黏性,LBS一般都只作为一种工具出现在某种产品中。通过LBS,用户不需要搜索和查找就可以在地图上快速定位自己的位置,在这个位置上寻找自己感兴趣的内容 用户和商家在接受,LBS

用SurfaceView实现Android游戏摇杆

浪子不回头ぞ 提交于 2020-04-14 04:21:48
【今日推荐】:为什么一到面试就懵逼!>>> 这段时间研究自定义控件,遂想起游戏里的摇杆的实现挺有意思,于是来自己写一套熟悉熟悉,关于SurfaceView的特性网上也有很多,故不赘述,反正绘图用起来挺爽就是了,永远的告别了JAVA GUI手动实现双缓冲的时代了…… import com.game.graphics.utils.MathUtils; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.PixelFormat; import android.graphics.Point; import android.graphics.PorterDuff.Mode; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.SurfaceHolder.Callback; public

JavaScript学习:21点游戏

旧时模样 提交于 2020-04-11 18:40:13
一、游戏规则 21点游戏的规则有很多种,我在写这个21点游戏的时候,选取了一种规则,描述如下: 1、游戏共有两名玩家,玩家1(庄家)和玩家2,在我编写的这个21点中,玩家1是电脑,玩家2是你,电脑坐庄。 2、一开始,给你和庄家各发两张牌,你可以看到你的两张牌,庄家的牌一张是明牌,一张是暗牌(暗牌是扣过来的牌,你不知道具体点数是多少)。 3、你和庄家的牌都是从一副牌里发出来的,共计52张(不要大小Joker)。 4、A可以当做1点和11点用,J、Q、K当做10点用,其他牌按面值计算点数。 5、发牌后,你可以选择要或不要牌,选择要牌后,如果你的点数大于21点,你就输了,否则你还可以选择要或不要牌,如果你选择不要牌,则轮到庄家要牌。 6、轮到庄家时,如果庄家的点数小于17点,则庄家必须要牌,当庄家点数大于或等于17时,庄家有权继续选择要或不要。如果庄家点数大于21点,则判定庄家输。 7、如果你和庄家都不要了,且双方都没有爆掉,则双方摊牌,计算双方点数,以点数大者胜,若双方点数一致则为平局。 二、目录结构 游戏的目录结构如下: 1、resource目录下,存储了游戏需要使用的图片。 2、bgm.ogg是游戏的背景音乐(我把QQ斗地主的背景音乐放进来了╮(╯▽╰)╭) 3、black_jack.html是一个网页,使用浏览器打开它就可以开始进行游戏了 4、black_jack

Make Game with Python & Pygame (3)

佐手、 提交于 2020-03-12 10:01:04
接着来介绍Pygame一些基础的东西。 Drawing Images with pygame.image.load() and blit() 很多游戏都不只是用简单的画图函数就可以完成的,还需要各种各样的图片(也被称作精灵)pygame可以加载到surface对象上的图片格式有PNG, JPG, GIF和BMP。关于格式的不同地方可以上网搜索。 接着对上篇最后的一段代码里面的东西做些介绍。 pygame.image.load()函数返回一个surface对象用于显示图片。这个surface对象和显示窗口对象是分离的,所以我们必须把图片显示对象复制到显示窗口对象通过blit()方法。 方法使用如下: DISPLAYSURF.blit(catImg, (catx, caty)) 第一个参数是要加载的图片对象,第二个参数是有两个整数的元组分别表示图片将要显示的左上角X和Y的坐标值。 字体 游戏都需要显示文字,pygame为字体和创建文本提供了一些简单的函数。下面就是一个使用pygame字体的程序。 import pygame, sys from pygame.locals import * pygame.init() DISPLAYSURF = pygame.display.set_mode((400,300)) pygame.display.set_caption("Hello

Pongo网页版JavaScript源代码及设计思路

谁都会走 提交于 2020-03-02 12:12:02
1.游戏背景介绍(写在前面的废话): 五月初的某天,看到某网推荐了这款游戏,Pongo,看着还不错的样子就用ipad下下来试玩了下,玩了两局感觉还错挺过瘾的,因为是手欠类游戏嘛大家懂的。 但是没一会发现游戏在ipad似乎有些bug,玩一会就会卡住然后只能强退了,真是揪心,记录还等着破呢。 怎么办?玩游戏不如玩自己的游戏的念头又邪恶的出现了,然后就把pad丢给了朋友虐心去,我默默回到电脑前开始动手自己写个不会卡的。 大概两小时吧,写出了基本框架,然后扔sinaapp里试了下效果基本能玩就洗洗睡了。 第二天醒来因为周末没事就花了些时间设计了下界面,同时不幸自己测出了一些比较严重的bug,最后又花了些时间给改掉了。 最后游戏取名 ”Pongo+“(手机党点我即玩) ,电脑端暂时不支持,并顺便在Github上上传了 源码 并去掉了提交成绩模块。 2.游戏试玩网址: Pongo+(仅限移动端): http://mypongo.sinaapp.com/ ‍ ‍ ‍ ‍ github开源(欢迎star/fork让游戏更好): https://github.com/ChenReason/pongo/blob/gh-pages/index.html ‍ ‍ ‍ ‍ 3.游戏规则玩法: 点击屏幕会改变挡板的运动方向,点击一次挡板方向相应改变一次,目的是为了能刚好挡住四处滚动的小球不让其跑出大圆外