分享
 
 
 

游戏制作相关---HAM教程翻译本(一)

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

HAM教程:: 第一天::GBA的硬件系统

由于有相当多的网站的教程讲到GBA的硬件系统,所以我将不会讲得太深入明细。然而,我将会给你讲解GBA系统的大概内容。

CPU:32bit RISC CPU ARM7TDMI(16.78 MHz)

显存:96 KB 工作内存:32KB + CPU 内部专用256KB

6个显示模式 (最大分辨率:240x160); 有四个背景层 (层或 planes);一些背景支持旋转和缩放;全部支持卷轴,马赛克,淡入淡出和Alpha混合

显示模式

Mode 0 - tile模式;屏幕由8x8 pixel的方格组成;有的4个图层; 不支持旋转和缩放;16位或256色

Mode 1 - tile模式;屏幕由8x8 pixel的方格组成;有BGs 0,1, 和 2;BG 2支持旋转和缩放;16位或256色

Mode 2 - tile模式;屏幕由 8x8 pixel 方格组成; 有BGs 2 和 3; 两者都支持旋转和缩放;256色

Mode 3 - 位图模式;线性16位色像素的缓冲区; 单缓冲;分辨率:240x160 pixel

Mode 4 - 位图模式;线性8位像素的缓冲区;8位色索引取自16位元调色板;双缓冲;分辨率:240x160 pixel

Mode 5 - 位图模式;线性16位像素的缓冲区;双缓冲;分辨率:160x128 pixel注意: 8位=256种颜色,16位 =65,536种颜色。

当在tile模式中操作的时候,你能对四背景可以通过使用不同的映像和tile独立地控制。默认的 情况下他们按3,2,1,0排列,意味着背景0会被显示在3的上面精灵,GBA在所有的模式中都支持对清灵硬件操作,精灵能够共用一个256色调色板或使用16个不同的16色调色板。精灵调色板和屏幕调色板是分开的。最多能有128个不同的精灵,大小从 8x8 到64x64 pixel。在Mode 3,4,5时用16 KB ,而 Mode 0,1,2 时用32KB的内存存放精灵的数据。

声音

GBA有4个与GB/GBC兼容的标准音乐声道。另外还有2个是允许直接声音采取。

好吧,第一天就教的就是这些。对於关於GBA 硬件的较多资讯 ,我会推荐你到以下的网站的链接:

CowBite Virtual Hardware Specifications

http://www.cs.rit.edu/~tjh8300/CowBite/CowBiteSpec.htm

Mappy VM SDK(软体开发工具)0.1 http://www.bottledlight.com/docs/sdk.html

HAM教程 ::第二天:: "Hello , World !"

是时候写一些程序了。所以看下面!

注意:记得去在编译之前将makefile拷贝到你的源文件目录中,而makefile文件你可以自己造或下载。

//主要的HAM头文件

#include "mygba.h"

int main ()

{

//初始化HAMlib

ham_Init();

/// 在指定的图层上初始化文本的显示

ham_InitText(0);

//输出一些文本

ham_DrawText(0,0,"Hello , World");

while(1)

{

//使程序无限循环

}

return 0;

}

代码解释

#include "mygba.h"

以后的程序中都需要HAM库的头文件。

ham_Init();

每个HAM程序中都必需初始化HAMlib的。

ham_InitText(0);

你能使用背景 0- 3.但你只能在背景模态式0-2中运行HAM本文系统. 记住这些是tile模式。

注意: 如果背景和背景模式现在对你一点意义也没有话,在第四或第六天之後回来.

ham_DrawText(0,0,"Hello ,World!");

参数的第一个项是行,其次是列。 举例来说 0,3 会在第一行第四列中。

水平数值: 0- 29

垂直数值: 0- 19

while (1)

没有这个,程序只会不断循环显示HAM的Logo。

好了,那第二天就是它了。 我不想今天有的复杂代码,就让我们轻松一天吧。

下载源码:

HAM Version 2.40 版和比较高的版本

必需的HAM文件: makefile http://www.aaronrogers.com/ham/Day2/makefile

main源文件: main.c http://www.aaronrogers.com/ham/Day2/main.c

编译了二进文件: hello.gba http://www.aaronrogers.com/ham/Day2/hello.gba

打包下载所有的文件: Day2_Hello_World.zip

http://www.aaronrogers.com/ham/Day2/Day2_Hello_World.zip

HAM Version 2.30 版和比较低的

必需的HAM文件: makefile http://www.aaronrogers.com/ham/Day2/2.30/makefile

main源文件: main.c http://www.aaronrogers.com/ham/Day2/2.30/main.c

编译了二进文件: hello.gba http://www.aaronrogers.com/ham/Day2/2.30/hello.gba

打包下载所有的文件: Day2_Hello_World.zip

http://www.aaronrogers.com/ham/Day2/2.30/Day2_Hello_World.zip

HAM 教程 :: 第三天:: 输入

由于HAM中实现输入是一件非常容易的事物。今天我们将会从第二天教程的源码中增加一些代码来示范输入函数有用法。

//主要的HAM头文件

#include "mygba.h"

int main()

{

//变量

bool dpad_pressed=0;

//初始化HAMlib

ham_Init();

// 在指定的图层上初始化文本的显示

ham_InitText(0);

//输出一些文本

ham_DrawText(0,0,"Hello, World!");

ham_DrawText(11,18," Press D-Pad To Reset");

while (!dpad_pressed)

{

// 检查输入的变化 key_pressed

if ( F_CTRLINPUT_UP_PRESSED││

F_CTRLINPUT_DOWN_PRESSED││

F_CTRLINPUT_LEFT_PRESSED││

F_CTRLINPUT_RIGHT_PRESSED)

{

dpad_pressed=1;

}

}

return 0;

}

编码解释

if( F_CTRLINPUT_UP_PRESSED...)

在循环的时候它将会对按钮进行检测,看看上 , 下 , 左或右是否按下。当按钮被按下时dpad_pressed的值变化之后,它将会离开程序并且 '复置' 游戏。

按钮 HAM中按钮的宏定义

上 F_CTRLINPUT_UP_PRESSED

下 F_CTRLINPUT_DOWN_PRESSED

左 F_CTRLINPUT_LEFT_PRESSED

右 F_CTRLINPUT_RIGHT_PRESSED

开始 F_CTRLINPUT_START_PRESSED

选择 F_CTRLINPUT_SELECT_PRESSED

B F_CTRLINPUT_B_PRESSED

A F_CTRLINPUT_A_PRESSED

L F_CTRLINPUT_L_PRESSED

R F_CTRLINPUT_R_PRESSED

注意: 在做对角线的运动时, 你能使用一些东西:

if( F_CTRLINPUT_UP_PRESSED&&F_CTRLINPUT_LEFT_PRESSED)

以后的教程中将会有一个例子。

好吧,以后的一个日子,以后的一个个别指导吧。是不是非常容易。

下载码

注意: 你可能需要到权利- 轻击而且选择救援当做。

HAM Version 2.40版和更高的版本

必需的HAM文件: makefile http://www.aaronrogers.com/ham/Day3/makefile

main源文件: main.c http://www.aaronrogers.com/ham/Day3/main.c

编译了二进文件: hello.gba http://www.aaronrogers.com/ham/Day3/hello.gba

打包下载所有的文件: Day3_Input.zip http://www.aaronrogers.com/ham/Day3/Day3_Input.zip

HAM Version 2.30 版和比较低的版本

必需的HAM文件: makefile http://www.aaronrogers.com/ham/Day3/2.30/makefile

main源文件: main.c http://www.aaronrogers.com/ham/Day3/2.30/main.c

编译了二进文件: hello.gba http://www.aaronrogers.com/ham/Day3/2.30/hello.gba

打包下载所有的文件: Day3_Input.zip

http://www.aaronrogers.com/ham/Day3/2.30/Day3_Input.zip

现在看示范 http://www.aaronrogers.com/ham/Demos/Day3.php

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有