鱼C论坛

 找回密码
 立即注册
查看: 3203|回复: 11

c程序在VC6.0怎么设计简单的图形?比如球的反弹?

[复制链接]
发表于 2012-7-21 22:17:06 | 显示全部楼层 |阅读模式
10鱼币
我想设计一个21*21的方格,然后设计一个球‘●’或者方块‘■’,从a[10][0]移动到啊a[0][10],然后一直反弹。
或者简单的,就沿着四个边移动,就像以前的俄罗斯方块黑白游戏机的游戏GAME OVER那样,沿着四周走一直到中间一直变黑。
这个应该不难吧!我现在C语言自学完了,感觉除了学生成绩管理系统这样的其它的不知道会干什么,能干什么。设计简单的游戏也可以增添一点乐趣,呵呵^_^。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-21 22:27:44 | 显示全部楼层
你现在借助system("cls");命令也可以设计这种游戏,不过刷新速度一快闪屏很厉害。

要实现真正的图像界面还需要学习windows的消息机制(主要就是理解消息机制的思想,然后使用微软提供的另外一些C语言函数进行编程)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-22 00:47:12 | 显示全部楼层
这个事比较简单的,但是需要学习一些windows的api。具体的你得先了解一下api的基础知识,然后再提问
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-22 00:48:41 | 显示全部楼层
还有,c语言一般情况下是用来写算法的,结构比较简单,但是可以衍生出无限种可能
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-22 19:19:58 | 显示全部楼层
好像需要win--32编程的知识
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-7-23 20:59:48 | 显示全部楼层
有木有谁知道
   0   1   2   3   4
  15 16 17  18  5
  14 23 24 25   6
  13 22 21 20   7
  12 11 10   9   8
类似这样的算法,以及光标的移动,不依赖windows,纯C,有木有?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-24 14:21:41 | 显示全部楼层
光标移动要借助API函数。。。不过其实你写个这样的东西 我觉得没必要考虑光标移动问题

你可以用一个二维数组,也就是矩阵。。。。。。。。先初始化为0,然后你需要里面出现一个方块,那么你只需要用某一个AscII  我以" * " 为例,  假如用四个 *  表示一个方块, 你只需要把四个位置的元素改为*的ascII

例如  char a[10][10]
2a 2a 00 00 00 00 00 00 00 00
2a 2a 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
这样就能打印出来一个  方块。  你想方块出现在哪里  你只需要往这个数组里面填值,然后  打印这个数组就行了,主要的就是算法 问题了
windows的小游戏  扫雷  就是这样实现的。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-7-25 11:05:40 | 显示全部楼层

正着,倒着,横着,竖着,斜着的简单算法我都会,就是画圈圈还真的。。。嘿嘿,我现在只会通过二维数组刷新屏幕来移动方块,不过那闪的厉害啊!想学光标的移动。
还有一个小问题想请教一下,那坑爹的二维指针让我。。。我是不是得回头学学汇编理解好内部结构再来学指针就简单一些啊?求解释!!!
谢谢啦!!!:lol
爱死你啦:kiss:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-25 11:16:06 | 显示全部楼层
当然学好汇编对学指针有很大帮助。。。容易更深的理解。。。  这是必然。。但是若刻意的为了学指针而先去学汇编。。。倒是没那么必要。。。指针要理解并且灵活的运用。。。不是一日两日的事。。。。但是你若一个破二维数组就要用二级指针 ,那就说明你不会用指针。还是别用的的好。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-7-26 10:05:28 | 显示全部楼层
Tzdner_C 发表于 2012-7-25 11:16
当然学好汇编对学指针有很大帮助。。。容易更深的理解。。。  这是必然。。但是若刻意的为了学指针而先去学 ...

呵呵,看样子你懂得挺多的嘛!叫小甲鱼给个BZ你玩玩:lolC语言其实入门也差不多了,该学的都已经学了,只是我现在不知道循环跟数组到底能干什么,我感觉要不是为了节省空间数组下标完全可以代替指针,那些什么光标移动,红外遥控感觉看都看不懂,都是一些没有学过的函数,也不知道具体是怎么实现,所以我想看看汇编代码。
还有一点,不知道你们是不是这样,我看谭浩强那本书一个星期才有点明白,然后学习循环的时候感觉似乎有点明白,又有点不明白,学习数组的时候循环差不多明白了,学习函数的时候数组差不多明白,学习指针的时候发现原来前面的都那么简单。这一点跟以前上学不一样啊!我以前学数学要是前面不明白,根本就没法继续学,但是c语言是越学越明朗,我想听听你们有什么见解。
谢谢了!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-26 16:01:26 | 显示全部楼层
394428311 发表于 2012-7-26 10:05
呵呵,看样子你懂得挺多的嘛!叫小甲鱼给个BZ你玩玩C语言其实入门也差不多了,该学的都已经学了,只是 ...

是啊。。。是有这样的感觉的。。。但是指针和数组可以通用,以后当你用的熟练的时候,就不会再去考虑数组跟指针有什么区别了。。
例如  int * a;    你给a随便给一个地址,赋一个值,然后 你想 *(a + 1) 或者 a[1] 都可以。  两种写法而已,在程序中经常会这样写。 前面定义的是指针  ,后面  a[0]  a  这样的,若你想学汇编,个人建议你先去熟悉32位汇编的那几条简单的汇编指令就行,能看懂VC的反汇编,那么对于数组 或者 指针  你只要一看反汇编  会很明确。。。如何赋值,如何取值。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-7-26 20:07:08 | 显示全部楼层
Tzdner_C 发表于 2012-7-26 16:01
是啊。。。是有这样的感觉的。。。但是指针和数组可以通用,以后当你用的熟练的时候,就不会再去考虑数组 ...

嗯,我现在在读李忠写的穿越计算机的迷雾,看了前面一点,觉得还可以,讲的是计算机的原理,虽然有点扯野棉花,老是跑题,但是我觉得学编程怎么也得理解计算机的原理,理解计算机为什么有时候跟我们的原意背道而驰。
好希望快点学好计算机,不知道你有什么心得体会,有什么好书,好网站,介绍一下哈!
还有,谢谢哈!!!
还有,上次说的那个float出错的问题,是微软编译器为了节约内存本身的问题,float如果没有初始化就scanf,如果在后面没有接printf,就会出错,这问题困扰了我一个星期,百度现在也不好找不答案。
还有,再次谢谢!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 17:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表