ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 网络编程 >> 其他编程教程 >> CC65 开发FC/NES 游戏(三)使用摇杆

齐发国际登录

来源:网络整理     时间:2018-11-01     关键词:

本篇文章主要介绍了" CC65 开发FC/NES 游戏(三)使用摇杆",主要涉及到方面的内容,对于其他编程教程感齐发国际游戏的同学可以参考一下: CC65在我的文章(一)中可以获取到 或者直接去github下载cc65 这次的代码来自cc65的samples目录下的hello.c 并做了修改和注释 通过查...

CC65在我的文章(一)中可以获取到 或者直接去github下载cc65
这次的代码来自cc65的samples目录下的hello.c 并做了修改和注释
通过查看源码可以看到里面支持的机器类型
#if defined(__NES__) || defined(__PCE__) || defined(__GAMATE__)
NES PCE GAMATE
通过 cmd 命令将 c 编译成 nes 文件
cl65 -t nes -o demo.nes demo.c
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <joystick.h>
static const char Text [] = "Hello world!";
// 2个临时变量,防止按住了按键频繁输出造成的闪烁
unsigned int p1,pt1;
// 屏幕四边划线,原始代码暂时没处理
void drawline(void){
    unsigned char XSize, YSize;
	// 清屏,光标移到左上角
    clrscr ();
    // 获取屏幕尺寸,传入地址相当于让函数给这2个地址赋值
    screensize (&XSize, &YSize);
    /* Draw a border around the screen */
    //顶端线
    cputc (CH_ULCORNER);
    chline (XSize - 2);
    cputc (CH_URCORNER);
    /* Vertical line, left side */
    cvlinexy (0, 1, YSize - 2);
    //底端线
    cputc (CH_LLCORNER);
    chline (XSize - 2);
    cputc (CH_LRCORNER);
    /* Vertical line, right side */
    cvlinexy (XSize - 1, 1, YSize - 2);
    // 屏幕正中间显示 hello world 文字
	// 就是将光标移到
    gotoxy ((XSize - strlen (Text)) / 2, YSize / 2);
    cprintf ("%s", Text);
}
void main (void)
{
    // 屏幕颜色,黑底白字
    (void) textcolor (COLOR_WHITE);
    (void) bordercolor (COLOR_BLACK);
    (void) bgcolor (COLOR_BLACK);
	// 屏幕四边划线(前面的方法)
	drawline();

    // 初始化手柄
    joy_install (joy_static_stddrv);

    while (1){
		p1 = joy_read (JOY_1);
		// start 和 select 一起按的时候跳出循环,相当于重启
		if(p1==12){break;}
		// p1的案件一直没变的情况不做响应
		if(p1==pt1){continue;}
		pt1=p1;
		// 输出按键对应的数值,因为长短不同需要空格覆盖原有位置的字符
		gotoxy(1,1);
		cprintf("   ");
		gotoxy(1,1);
		cprintf("%d",p1);
	}
	// 前面使用break 跳出循环会走到这里
	gotoxy(0,0);
	cprintf("over");
}

通过这个demo我们可以获取到按键对应的数值
A      - 1
B      - 2
select - 4
start  - 8
上     - 16
下     - 32
左     - 64
右     - 128
连发 A 和 B 就是这2个数字频闪
解释:
其实这个按键的取值是从默认的地址获取一个 16进制的值
比如右这个值最大对应的
十进制 128
16进制 80
二进制 10000000
同理左的二进制 是  01000000
如果全按了就会显示 11111111
当多个按键一起按的时候相当于累加 比如 AB一起按输出的就是 3
截图是我用qq的 ctrl+alt+a 同时按着下(s) 相当于同时按了 左和下 显示的就是 96

以上就介绍了 CC65 开发FC/NES 游戏(三)使用摇杆,包括了方面的内容,希望对其他编程教程有齐发国际游戏的朋友有所帮助。

本文网址链接:http://www.machineofchina.com/article/detail_4596271.html

相关图片

相关文章