WINCE下小游戏习作(Q11战斗机)

首先感谢VCKBASE无偿提供的交流环境和众多XDJM们提供的无私的帮助,我在此收益颇丰。最近因为工作上一个PDA嵌入式的项目,恶补了一些这方面的知识,回头感觉走了不少弯路,所以写了这个小游戏,拿出来共享,希望当成一个PDA游戏编写的入门教程,能给后来者一些帮助,水平有限,请勿见笑。

涉及的代码是针对WINCE3.0(PPC2002)平台,同时兼顾了WIN32平台;旨在讨论编写同时适应2种平台的通用代码,采用的是最原始的BitBlt贴图和离屏方式,贴图效果比较粗糙。对声音的处理也比较幼稚,希望不会误导初学者。游戏算法和图片部分参考了王正盛的A10攻击机和Kylinx的kplan代码,在此对两位作者公布源代码的无私行为表示感谢!

程序要点:

1、PC和WINCE编译环境的区分,采用#if _WIN32_WCE #else #endif宏,类似StdAfx.h

//WINCE环境
#if _WIN32_WCe
#define WIN32_LEAN_AND_MEAN  // Exclude rarely-used stuff from Windows headers
#include <aygshell.h>
#include <sipapi.h>
#define  ScreenW  240  //游戏窗口宽度
#define  ScreenH  320  //游戏窗口高度
#else  //PC环境,只在WIN2000 Pro/VC6下测试过
#include <stdio.h>
#include <mmsystem.h>
#pragma comment(lib,"winmm.lib")
#define TCHAR char
#define wcslen strlen
#define wcscmp strcmp
#define wcscpy strcpy
#define wcscat strcat
#define wcsncpy strncpy
#define swprintf sprintf
#define SHLoadDIBitmap(szBmpName)  (HBITMAP)LoadImage(GetModuleHandle(NULL),\
    szBmpName, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
#define ScreenW 450 //游戏窗口宽度
#define ScreenH 550 //游戏窗口高度
#endif

关于这个,相信大家都知道,只是提一下,不详细介绍了

2、游戏设置部分

这部分的实现比较幼稚,EDIT获得焦点后,在相应的hDC区域画出Press Any Key的提示信息,然后无限等待消息(键盘按下),不知道有没有更好的办法?详情请见“设置窗口回调函数”代码段:

if(HIWORD(wParam) == EN_SETFOCUS)
{
  GetCursorPos(&p);
  ScreenToClient(hWndSet,&p);
  GetClientRect(hWndSet,&rcDlg);
  rc.left = p.x;
  rc.right = rc.left + 80;
  if(rc.right>rcDlg.right)
  {
    rc.right = rcDlg.right;
    rc.left = rc.right - 80;
  }
  rc.top = p.y;
  rc.bottom = rc.top + 20;
  hDC = GetDC(hWndSet);
  SetBkMode(hDC, TRANSPARENT);
  SetTextColor(hDC, RGB(255,0,0));
  DrawText(hDC,TEXT("按任意键"),-1,&rc,DT_LEFT);
  do
  {
    //等待键盘按下消息
    MSG msg;
    GetMessage(&msg,NULL,0,0);
    if(msg.message == WM_KEYDOWN)
    {
      if((vKey = LOWORD(msg.wParam)) != -1)
          bPress = TRUE;
    }
  }while(bPress == FALSE);
  swprintf(str,TEXT("%d"),vKey);
  //只检测这些特殊键值,其他特殊的几乎不用
  if( 0 == wcscmp(str,TEXT("16")) )
    wcscpy(str,TEXT("SHIFT"));
  else if( 0 == wcscmp(str,TEXT("17")) )
    wcscpy(str,TEXT("CONTROL"));
  else if( 0 == wcscmp(str,TEXT("32")) )
    wcscpy(str,TEXT("SPACE"));
  else if( 0 == wcscmp(str,TEXT("37")) )
    wcscpy(str,TEXT("LEFT"));
  else if( 0 == wcscmp(str,TEXT("38")) )
    wcscpy(str,TEXT("UP"));
  else if( 0 == wcscmp(str,TEXT("39")) )
    wcscpy(str,TEXT("RTGHT"));
  else if( 0 == wcscmp(str,TEXT("40")) )
    wcscpy(str,TEXT("DOWN"));
  else
    swprintf(str,TEXT("%c"),vKey);
    SetWindowText(::GetFocus(),str);
    //SendMessage(hWndSet,WM_NEXTDLGCTL,0,0);
    InvalidateRect(hWndSet,&rc,TRUE);
    DeleteDC(hDC);
} //end if(HIWORD(wParam) == EN_SETFOCUS) here

时间: 2025-01-21 08:29:03

WINCE下小游戏习作(Q11战斗机)的相关文章

JS小游戏之宇宙战机源码详解_javascript技巧

本文实例讲述了JS小游戏的宇宙战机源码,分享给大家供大家参考.具体介绍如下: 一.游戏介绍: 这是一款飞行射击游戏,纵向,共六关. 二.游戏需求: 1.战机可发射子弹,子弹可通过获取道具升级. 2.战机可放bomb,可获取道具增加数量. 3.战机可蓄力攻击. 4.道具有三种,分别是升级子弹,增加bomb数量,增加战机数量. 5.每关音乐不同. 6.战机被击落后再进入战场,有保护状态. 7.敌机AI设计. 游戏运行如下图所示: 完整实例代码点击此处本站下载. 三.Javascript源码部分: /

java-如题比如我下了一个JAVA小游戏源代码照着写就能运行了吗

问题描述 如题比如我下了一个JAVA小游戏源代码照着写就能运行了吗 比如说俄罗斯方块,五子棋 等我该注意什么问题呢,大神们我知道我的问题对你们来说都是小问题,新手求科普 解决方案 看来你还没有做过游戏方面的东西吧.一般而言,游戏不止有代码,同样的还必须有图片资源,你想一下不然游戏的美工不就只有喝西北风了!!当然也有例外,比如你完全只是调用一些简单的几何图形函数就不会用到图片资源.但是这种游戏几乎没有!所以你要看代码中调用图片资源没有,如果有,还要找到图片资源,同时还要看用到其他的库没有,如果用到

Cocos2d-x 版本小游戏 《是男人就下100层》 项目开源

原文:Cocos2d-x 版本小游戏 <是男人就下100层> 项目开源 这个是很久就开始动手写的一个小游戏了,直到最近才把它收尾了,拖拖拉拉的毛病总是很难改啊.  项目是基于 cocos2d-x v2.2 版本 ,目前只编译到了 Win8 平台上,并且已经上传到了商店,支持 ARM 以及 X86,其它平台的可以自己动手术去编译. 下载试玩:点这里  项目介绍 这毕竟是个小游戏,本身其实没有什么技术难点,主要在于项目的设计,分为如下几个小模块   1.玩家 (Player) 玩家类我用了单例模式

偷菜的小游戏最终走下历史舞台

据中国之声<央广新闻>报道,人人网今天将关闭开心农场游戏的服务器.这款2009年曾风靡全国,有上亿用户上网偷菜的小游戏,历时四年半,最终走下历史舞台.对于开心农场要下线的消息,游戏迷们是怎样的态度?      大家都记得在2009年的时候,身边的人是为了偷菜不眠不休,为了防偷更是时刻警惕,应该说玩这款游戏的人是不在少数.但是随着科技的发展,网络游戏是层出不穷,最终我们的农场游戏也没有奈得住时间的寂寞.目前开心农场是渐渐冷淡了,替代他的是很多新鲜的游戏.这个游戏的管理员在网页上提出了游戏下线的通

见证奇迹的时刻:小游戏推动大品牌

中介交易 SEO诊断 淘宝客 云主机 技术大厅 根据艾瑞网的中国网络游戏行业研究报告可以看出来,中国网页游戏市场仍在不断的扩大,昔日小打小闹的网页厂商,已经和客户端游戏分庭抗礼.那些大型的网页游戏再也不能称霸游戏界,而那些小游戏却给力的推动中国游戏市场的大品牌! 小游戏代表站:访问量超过100万,注册用户已有2000万 很多游戏网站都定位在网游和网页游戏这种大型游戏上面,殊不知小游戏才是最能带来流量,最受众的游戏.根据个人观察还有艾瑞网的数据显示,07073游戏网站,就是着手于小游戏,推动游戏大

手机小游戏网站SEO优化之长尾词篇

笔者的一个好朋友最近做了一个手机小游戏下载的网站,主要是提供手机小游戏下载,从智能开始流行开始,手机小游戏类的网站似乎也变多 了,个人站长做网站主要的收入来源是广告费用,比如:百度广告联盟.但有流量才有广告费用,手机小游戏下载的网站应该如何优化,笔者看了几个主关键词,像"手机小游戏"这样的词竞争都比较激烈,做起来比较困难.加上个人的精力和资源有限,那就很难做上去,一个网站大部分的流量来源于长尾词,众多的长尾词优化起来也比较费事费力,虽然个人不能与团队相比,但是也要想好了再开始执行.以下

将XP的小游戏移植到Win2003中

虽然现在很多人都在玩CS.传奇.奇迹.三国等许许多多的大型游戏,但是同时仍然有很多朋友对Windows自带的扫雷.接龙等小游戏情有独钟,在工作之余扫扫雷也自有一番乐趣.可在Windows Server 2003 中却没有了这些百玩不厌的小游戏,难道鱼与熊掌就不可兼得,为了2003就只能舍弃这些小游戏吗?经摸索,终于成功地将Windows XP中的小游戏移植到了Windows Server 2003中,实现过程如下: 提示: 以下操作是以Windosw Server 2003安装在C盘为例,你可以

聊聊HTML5小游戏的制作技巧及经验

  今天腾讯的同学从一款HTML5小游戏<植物大战僵尸>说起,分享一些动画实现的知识(动画可控性.如何兼容不同分辨率.如何识别平板手机等),附上众多实现小技巧,来收 >>> hello~大家好,我是黑米! O(≧▽≦)O 今天我来跟大家分享一些动画实现的相关知识,希望大家能够支持(鞠躬-- 我很喜欢很喜欢看动画片,一直有做出好看动画片的梦想--所以最近做了不少动画效果来玩儿,也为自己以后可以做出伟大的动画片打好基础! Web端动画表现有不少办法,我列一些常见的,然后再说说在实

怎样在Excel2000玩赛车小游戏?

  第一步.首先要有Excel2000,不是就不能玩咯.打开Excel2000之后随便新建一档,然后点击文件→另存为Web页. 第二步.按下发布后再将"添加交互对象"打勾,在把它储存为XX.htm格式文件. 第三步.在IE中打开储存的文件,找到第2000行整行选取,使用Tab键将光标至于WC列. 第四步.同时按住Crtl+Alt+Shift,点击表格左上角的office图标. 第五步.赛车小游戏就完成啦!使用方向键进行控制,H键开关灯,SPACE空格键射击,O键可以放油喔! 最后提醒一