设为首页收藏本站喵玉殿官方微博

 找回密码
 少女注册中
搜索
查看: 5486|回复: 8

[教程图书] (⑨.①⑨的⑨楼)【伪】编程指南 ~ Visual Basic

[复制链接]
发表于 2014-7-5 22:57:55 | 显示全部楼层 |阅读模式
本帖最后由 drzzm32 于 2014-9-19 20:36 编辑

首先是百科:
Visual Basic
然后是视频:
Y哭(6.0)T逗(2010)
————————————
   注意,前者视频中以及平时教学都是使用6.0版本,但是它的兼容性是很大的问题,而且老版本有着名副其实的低效率,并不推荐做稍微大些的工程。
   至少用个Visual Basic 2010才对得起你家的Win7。。。
————————————
书籍嘛。。。这里有,自选。好像有奇怪的东西。。。
这里有Visual Basic 6.0和Visual Basic .NET的。
   从刚才到现在都在说上面两个,原因是Visual Basic 6.0到韩国整容,变成了Visual Basic .NET,二者差异非常大。
   比如在Visual Basic .NET中可以用Visual C++的某些功能。。。(所以之后统称Visual Studio)
   但是自从Visual Basic 2010(大概)开始,我们就不能用Windows Installer打包程序了,这十分蛋筒,微软叫我们用Install Shield Limited Edition。还好有Click-Once应用程序部署。
————————————
   对于VB,制作重心通常是GUI(Graphics User Interface, 图形用户界面)设计,而代码放在第二位。因此VB程序员的睡眠要比C++程序员好些。
  这就是为什么VB教程给你讲控件,而C++是各种函数,各种算法。
————————————
   要用好对象浏览器。你可以看到许多函数,过程的原型,以及各种数据的定义。
虽然微软要把 .NET Framework开源,但那又是之后的事了。
————————————
   好好学习每一个主要控件,VB的控件你无法学完,它和东方的本子一样多(大概),但是你要学习主要的,大部分控件都是派生出来的。尤其要理解定时器Timer
————————————
  当然,你要学会怎么用API,这个大傻气。
有了它,你可以扔掉金坷拉。它甚至可以在VB中使用DirectX。。。(那是COM组件
————————————
  注意,VB中用的最多的是小括号,然后,每行代码结尾没有分号。
——————
——————
注意,在程序进行编译(翻译)时,会进行一个叫做强制类型转换的工作。实际上你没有关注它的必要,不然你为什么还要用编程工具呢?
——————
——————
注意,这种写法是错的:
  1. For i = 1 To 10 Step 1
  2.     ......
  3.     For j = 1 To 10 Step 1
  4.     ......
  5.     Next i
  6. Next j
复制代码
实际应该是这个:
  1. For i = 1 To 10 Step 1
  2.     ......
  3.     For j = 1 To 10 Step 1
  4.     ......
  5.     Next j
  6. Next i
复制代码
所谓的循环嵌套,只允许真包含关系,不允许存在上上代码的嵌套。
如,循环嵌套是这样的:
  1. For i = 1 To 8
  2.                         For j = 1 To 8
  3.                             Gl.glBindTexture(Gl.GL_TEXTURE_2D, WDJ_E.Texture(IMAGE_BG, 7))
  4.                             Gl.glPushMatrix()
  5.                             Gl.glTranslatef(80 + 160 * (j - 1), 45 + 90 * (i - 1), 200)
  6.                             Gl.glRotatef(MenuRotate, 16, 9, 0)
  7.                             Gl.glBegin(Gl.GL_QUADS)
  8.                             Gl.glColor4f(1, 1, 1, 1) : Gl.glTexCoord2f(0, 1)
  9.                             Gl.glVertex3f(-80, -45, 0)
  10.                             Gl.glColor4f(1, 1, 1, 1) : Gl.glTexCoord2f(1, 1)
  11.                             Gl.glVertex3f(80, -45, 0)
  12.                             Gl.glColor4f(1, 1, 1, 1) : Gl.glTexCoord2f(1, 0)
  13.                             Gl.glVertex3f(80, 45, 0)
  14.                             Gl.glColor4f(1, 1, 1, 1) : Gl.glTexCoord2f(0, 0)
  15.                             Gl.glVertex3f(-80, 45, 0)
  16.                             Gl.glEnd()
  17.                             Gl.glPopMatrix()
  18.                         Next j
  19.                     Next i
复制代码
——————
——————
关于条件选择语句:Select Case
格式为:(值与表达式有关,通常是常数)
  1. Select Case [表达式]
  2.     Case 值1
  3.         [语句块1]
  4.     Case 值2
  5.         [语句块2]
  6.     Case 值3
  7.         [语句块3]
  8.     ......
  9.     Case 值n
  10.         [语句块n]
  11.     Case Else
  12.         [语句块n+1]
  13. End Select
复制代码
对于条件,可以有这样:
  1. Case [值1] To [值2]
复制代码
等效于 值1< 表达式 < 值2
还有:
  1. Case Is [表达式]
复制代码
这里的 Case Is 相当于 Select Case 之后的表达式的当前值,Case Is 之后的式子需要一个运算符,如 =, <, >, <>
如:Case Is > 1 等效于 x > 1 (x是当前的Select Case 之后的式子值)  
——————
——————
然后待更。
——————
——————
附:Visual Basic 2012截图
屏幕截图(6).jpg 屏幕截图(5).jpg














评分

参与人数 1积分 +1 喵玉币 +5 萌度 +4 收起 理由
Sonicthedgehog + 1 + 5 + 4 萌!

查看全部评分

发表于 2014-7-6 18:01:44 | 显示全部楼层
楼主会C语言么,会的话我觉的还是用C说比较好,要学编程入门不学C是在是说不过去的。

点评

因为,先学VB .NET 再转 C# 是个很好的想法。我是会一部分C++,但是当前熟悉的是 .NET ,况且 VB 是一种更高级的语言,更容易学习  发表于 2014-7-6 18:08
回复

使用道具 举报

发表于 2014-9-17 12:08:58 | 显示全部楼层
楼主的VB坑求更
回复

使用道具 举报

 楼主| 发表于 2014-9-17 13:10:24 来自手机 | 显示全部楼层
梦太 发表于 2014-9-17 12:08
楼主的VB坑求更

这些还是要自己学习啊……我想想写点啥吧……

点评

看技术区的置顶帖,进群  发表于 2014-9-18 16:04
恩,主要当然是自己学习,有问题的话可以来问你吗?  发表于 2014-9-18 15:18
回复

使用道具 举报

发表于 2014-9-17 16:49:26 | 显示全部楼层
select case......
這類決策性程式碼也有好幾種....

如:
陳述式: if .......elseif.....elseif.....else....end if
switch函數
IIF函數
Choose函數

至於 for ...... next 此等迴圈陳述式....
同類的也有 Do [While/Until] .....Loop [While/Until]

要學好程編的話,最好就是,多看多模仿微軟的範例 和看參考書
回复

使用道具 举报

发表于 2014-9-17 18:30:41 | 显示全部楼层
谭浩强:看看我的书的销量,呵呵
回复

使用道具 举报

发表于 2014-9-17 21:06:09 | 显示全部楼层
lz啊,我觉得你的心意是好的

但是从经验上来看,b站上有不少教java,c++,python 的视频
但是它们全部都在5话以内弃坑了,最终结果是全灭
因为这些东西太枯燥无聊了,而公共平台往往是娱乐性高于实用性的
没人看的话,自然就弃坑了

学习编程,入门只能靠自己

在论坛上讲的话,还是讲一些交流性的东西比较好
比如我看到 GL.xxx
可以讲讲opengl api 或者directx api 的引入

以上只是建议

点评

正有此意,周末更一次吧。。。  发表于 2014-9-17 21:50
回复

使用道具 举报

发表于 2014-9-17 23:45:36 | 显示全部楼层
貌似目前更得初中都学过
上高中了、我也要多学点东西了,加油更吧博士
回复

使用道具 举报

 楼主| 发表于 2014-9-19 20:33:47 | 显示全部楼层
本帖最后由 drzzm32 于 2014-9-19 20:37 编辑

好吧,久违的更新。。。

这次是说在Visual Basic .NET下用OpenGL API。(DirectX的话还在研究)



首先献上核心部分:Tao Framework(度娘) (SourceForge

它是由麻省理工学院写的,基于.NET Framework的一个扩展框架,目的是让在.NET Framework下更容易使用OpenGL,OpenAL,PhysX,以及其他。当前最新是2.1版本。(估计也只有这个版本了)

不知什么问题,貌似它的Alut库以及其他部分库不全。。。(求测试)

还是给出Wikipedia:(地址)(英文注意)


The Tao Framework is a C# library giving .NET and Mono developers access to popular graphics and gaming libraries like OpenGL and SDL. It was originally developed by the C# OpenGL programmer Randy Ridge, and since its start many developers have contributed to the project. The latest version of Tao is version 2.1 released on May 1, 2008.

Tao Framework has been superseded by OpenTK.[1]

In 2012, in parallel with the development of OpenTK, a new project called TaoClassic has been introduced on SourceForge, as a direct continuation of Tao Framework, with the same licensing conditions and design disciplines, but with new authors and cutting-edge features, like support for OpenGL 4.3, 64-bit operating systems, etc.[2]




很强大的工具,嗯。步入正题。我用的是Visual Studio 2013
框架安装好后,新建工程,添加引用,就是安装目录下的bin里的dll,需要才加。
安装目录下还有很多资源,自己去研究。。。
然后需要在工具箱里选择项,添加控件,是这个文件:Tao.Platform.Windows.dll
之后把程序做好了还要把这个文件复制到输出目录,因为默认是不复制的。


然后是一点提示:
对于OpenGL的控件,有些属性是无法在编辑窗口修改的,需要在代码里设置。而且有些不允许修改。
在控件里封装的一个重要方法,InitializeContexts(),需要在程序初始化阶段调用,作为控件初始化,但是我不知道他为何不用构造函数。。。
而且,所有绘图代码,即glBegin()到glEnd(),最好写在控件的Paint方法里,写在外面效率爆低,原因不明。
别忘了在代码头部Imports Tao.OpenGL。。。


然后。。。我看看网上有没有教程。。。目测只有实体书。。。(TB
建议看看他的范例。。。其他的话。。。我只能说这点了,我还要尝试DirectX。。。

给些自己写的代码。。。慎用。。。OpenAL的,GL的根本没法移植。。。
  1. Public Class AudioGroup

  2.             Shared Sub ALInitilize()
  3.                 Dim DeviceNum As System.IntPtr = Alc.alcOpenDevice(vbEmpty)
  4.                 Dim Context As System.IntPtr = Alc.alcCreateContext(DeviceNum, vbEmpty)
  5.                 Alc.alcMakeContextCurrent(Context)
  6.             End Sub

  7.             Shared Sub ALDispose()
  8.                 Dim Context As System.IntPtr = Alc.alcGetCurrentContext
  9.                 Dim Device As System.IntPtr = Alc.alcGetContextsDevice(Context)
  10.                 Alc.alcMakeContextCurrent(vbEmpty)
  11.                 Alc.alcDestroyContext(Context)
  12.                 Alc.alcCloseDevice(Device)
  13.             End Sub

  14.             Public Class AudioSystem

  15.                 Shared Sub SourceConfig(ByVal Type As Integer, ByVal Index As Integer, ByVal x As Single, ByVal y As Single, ByVal z As Single, _
  16.                                          ByVal vx As Single, ByVal vy As Single, ByVal vz As Single)

  17.                     Al.alGenSources(1, AudioSource(Type, Index))
  18.                     Al.alSourcei(AudioSource(Type, Index), Al.AL_BUFFER, AudioBuffer(Type, Index))
  19.                     Al.alSource3f(AudioSource(Type, Index), Al.AL_POSITION, x, y, z)
  20.                     Al.alSource3f(AudioSource(Type, Index), Al.AL_VELOCITY, vx, vy, vz)
  21.                     Al.alSourcei(AudioSource(Type, Index), Al.AL_LOOPING, Al.AL_TRUE)
  22.                     Al.alSourcef(AudioSource(Type, Index), Al.AL_GAIN, 1)
  23.                     Al.alSourcef(AudioSource(Type, Index), Al.AL_PITCH, 1)

  24.                 End Sub

  25.                 Shared Sub ListenerConfig(ByVal x As Single, ByVal y As Single, ByVal z As Single, ByVal vx As Single, ByVal vy As Single, ByVal vz As Single, _
  26.                                           ByVal a As Single, ByVal b As Single, ByVal c As Single, ByVal d As Single, ByVal e As Single, ByVal f As Single)
  27.                     Al.alListener3f(Al.AL_POSITION, x, y, z)
  28.                     Al.alListener3f(Al.AL_VELOCITY, vx, vy, vz)
  29.                     Dim Orientation() As Single = {a, b, c, d, e, f}
  30.                     Al.alListenerfv(Al.AL_ORIENTATION, Orientation)
  31.                 End Sub

  32.                 Shared Sub AudioPlay(ByVal Type As Integer, ByVal Index As Integer)

  33.                     Al.alSourcePlay(AudioSource(Type, Index))

  34.                 End Sub

  35.             End Class

  36.         End Class
复制代码




点评

这个东西C#也可以用……  发表于 2014-9-20 01:14
即是可以在vb.net裡使用經由c#(或其他)所開發的遊戲/繪圖引擎?  发表于 2014-9-20 00:32
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 少女注册中

本版积分规则

合作与事务联系|无图版|手机版|小黑屋|喵玉殿

GMT+8, 2025-10-31 15:53

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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