Entries

¥¢¥Ë¥á¡¼¥·¥ç¥ó¡¡¤½¤Î7

¥¢¥Ë¥á¡¼¥·¥ç¥ó¡¡¤½¤Î6¤Ç²¡¤µ¤ì¤¿Êý¸þ¤Ë°Üư¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Þ¤·¤¿¡£

º£²ó¤ÏÆþÎϤµ¤ì¤¿Êý¸þ¤Ë°ìÊâ¤À¤±¿Ê¤à¤è¤¦¤Ë²þ¤¤·¤Æ¤¤¤­¤Þ¤¹¡£
°ìÊâ¤È¤¤¤¦¤Î¤Ï32¡ß32¤Î²èÁü¤Ç¤¢¤ì¤Ð32¥Ô¥¯¥»¥ë¤Ë¤Ê¤ê¤Þ¤¹¡£
32¥Ô¥¯¥»¥ëư¤¯¤Þ¤Ç¥¢¥Ë¥á¡¼¥·¥ç¥ó¤µ¤»¤Æ32¥Ô¥¯¥»¥ëư¤¤¤¿¤é¥¢¥Ë¥á¡¼¥·¥ç¥ó¤ò»ß¤á¤ì¤Ð¤¤¤¤¤ï¤±¤Ç¤¹¡£
¤È¤¤¤¦¤³¤È¤Ï¡¢²èÁü¤¬32¥Ô¥¯¥»¥ëư¤¤¤¿¤«¤É¤¦¤«¤ÇȽÄꤹ¤ëɬÍפ¬½Ð¤Æ¤­¤Þ¤¹¡£

¤³¤Î¾ò·ï¼°¤Ï¡¢
­¡º£¤Î¾ì½ê¤òµ­Ï¿¤·¤Æ°Üư¤·¤¿²èÁü¤È¤Îº¹¤¬32¤«¤É¤¦¤«
­¢º£¤Î¾ì½ê¤Ë32²Ã¤¨¤¿ÌÜŪºÂɸ¤òºîÀ®¤·¡¢²èÁü¤òư¤«¤·¤ÆÌÜŪºÂɸ¤òͤ¨¤¿¤«¤É¤¦¤«
¤Î¤É¤Á¤é¤«¤òÍøÍѤ¹¤ì¤Ð¤¤¤¤¤«¤È¡£
¤Á¤Ê¤ß¤Ë¡¢º£²ó¤Ï­¡¤Î¥Ñ¥¿¡¼¥ó¤òÍøÍѤ·¤Þ¤·¤¿¡£

¤É¤Á¤é¤Î¥Ñ¥¿¡¼¥ó¤Ç¤âºÂɸ¾ðÊó¤¬É¬Íפˤʤê¤Þ¤¹¡£
¤³¤ÎºÂɸ¾ðÊó¤òºîÀ®¤¹¤ë¤Î¤Ï¥«¡¼¥½¥ë¥­¡¼¤¬ÆþÎϤµ¤ì¤¿¤È¤­¤Ë¤Ê¤ê¤Þ¤¹¡£
¤Þ¤¿¡¢¥¢¥Ë¥á¡¼¥·¥ç¥ó¤µ¤»¤ë¤«¤µ¤»¤Ê¤¤¤«¤Ï¥Õ¥é¥°¤òÍøÍѤ·¤Æ¤¤¤­¤Þ¤¹¡£
¤³¤Î¥Õ¥é¥°¤â¥«¡¼¥½¥ë¥­¡¼¤¬²¡¤µ¤ì¤¿¤È¤­¤ËÍ­¸ú¤Ë¤·¤Þ¤¹¡£
¤µ¤é¤Ë¡¢¥«¡¼¥½¥ë¥­¡¼¤¬²¡¤µ¤ì¤¿¤È¤­¤Î½èÍý¤â¥Õ¥é¥°¤Î¾õÂÖ¤òÍøÍѤ¹¤ë¤è¤¦¤Ë¥³¡¼¥É¤ò½¤Àµ¤·¤Æ¤ª¤­¤Þ¤¹¡£
¤³¤Îºî¶È¤ò¤·¤Æ¤ª¤«¤Ê¤¤¤Èư¤¤¤Æ¤¤¤ëºÇÃæ¤ËÊý¸þÊÑ´¹¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£

º£²ó¤Î¥á¥¤¥ó¤Ï32¥Ô¥¯¥»¥ë°Üư¤È¤¤¤¦½èÍý¤Ç¤¹¡£
²èÁü¤ÎºÂɸ¤ÏPoint¤Ç¤Ï¤Ê¤¯¾¯¿ôÅÀ¤ÎPointF¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
°ì²ó¤ÎPaint¥á¥½¥Ã¥É¤Ç²¿¥Ô¥¯¥»¥ë°Üư¤¹¤ë¤«¤Ï¥³¥ó¥Ô¥å¡¼¥¿¼¡Âè¤Ç¤¹¤¬¾¯¿ô°Ê²¼¤ÎÃͤϤ«¤Ê¤é¤ºÈ¯À¸¤·¤Æ¤¤¤·¤Þ¤¤¤Þ¤¹¡£
¤³¤ì¤¬¤¢¤ë¤È¡¢ÃÊ¡¹¥º¥ì¤¬À¸¤¸¤Æ¤·¤Þ¤¦¸¶°ø¤È¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¤½¤³¤ÇÂкö¤È¤·¤Æ²èÁü¤Î¾ì½ê¤ÏÉâÆ°¾®¿ôÅÀ¤ÎPointF·¿¤Ç´ÉÍý¤µ¤»¤Þ¤¹¤¬¡¢¤â¤Ã¤ÈÂ绨ÇĤ˲èÁü¤¬¤É¤³¤Î¥Ö¥í¥Ã¥¯¡Ê¥Þ¥¹¡Ë¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¤«¤ò´ÉÍý¤¹¤ëPoint·¿¤ÎºÂɸ¤òÍѰդ·¤Æ¤ª¤­¤Þ¤¹¡£
ºÂɸ¤È¤¤¤Ã¤Æ¤â¥Ô¥¯¥»¥ëñ°Ì¤Ç¤Ï¤Ê¤¯¡¢¥Ö¥í¥Ã¥¯¡Ê¥Þ¥¹¡Ëñ°Ì¤ÎºÂɸ¤È¤·¤Æ¹Í¤¨¤Þ¤¹¡£
¤³¤Î¥Ö¥í¥Ã¥¯¡Ê¥Þ¥¹¡ËºÂɸ¤Ë32¥Ô¥¯¥»¥ë¤ò³Ý¤±¤ì¤Ð¤«¤Ê¤é¤ºÀ°¿ô¤Ç32¤ÎÇÜ¿ô¤Ë¤Ê¤ëºÂɸ¤¬ºîÀ®¤Ç¤­¤Þ¤¹¡£
¤³¤ì¤ò²èÁü¤Î¾ì½ê¾ðÊó¤È¤·¤ÆºÆÅÙÀßÄꤹ¤ì¤ÐÊÑ¤Ê¸íº¹¤Ï¤Ç¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£

¾åµ­¤Î¤³¤È¤ò¥³¡¼¥É¤Ë¤¹¤ë¤È°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
Public Class Form1
¡¡¡¡Enum Direction
¡¡¡¡¡¡¡¡¡Ê¾Êά¡Ë
¡¡¡¡End Enum

¡¡¡¡Dim img As Bitmap = New Bitmap(My.Resources.anime6) '¥¹¥×¥é¥¤¥È²èÁü
¡¡¡¡Dim imgRect(,) As Rectangle '²èÁü¶ë·ÁÇÛÎó
¡¡¡¡Dim iNo As Integer 'ɽ¼¨²èÁü¥¤¥ó¥Ç¥Ã¥¯¥¹
¡¡¡¡Dim direct As Direction '¥­¥ã¥é¥¯¥¿¡¼¤Î¸þ¤¤¤Æ¤¤¤ëÊý¸þ
¡¡¡¡Dim swatch As Stopwatch = New Stopwatch() '¥¹¥È¥Ã¥×¥¦¥©¥Ã¥Á
¡¡¡¡Dim lastTime As Double 'Á°²ó¼Â¹Ô»þ¤Î»þ´Ö
¡¡¡¡Dim loc As PointF '²èÁü¤Î¾ì½êºÂɸ
¡¡¡¡Dim vel As PointF '²èÁü¤Î°Üư®ÅÙŽ¥Ž¥Ž¥¥Ù¥¯¥È¥ë
¡¡¡¡Dim pos As Point '²èÁüɽ¼¨¥Ö¥í¥Ã¥¯
¡¡¡¡Dim dep As PointF '°Üư»þ¤Î²èÁüºÂɸ
¡¡¡¡Dim MoveFlg As Boolean '°Üư¥¢¥Ë¥á¡¼¥·¥ç¥ó¥Õ¥é¥°


¡¡¡¡Public Sub New( )
¡¡¡¡¡¡¡¡¡Ê¾Êά¡Ë
¡¡¡¡End Sub

¡¡¡¡Sub Init( )
¡¡¡¡¡¡¡¡imgRect = New Rectangle(3, 3) { }
¡¡¡¡¡¡¡¡For y As Integer = 0 To imgRect.GetUpperBound(0) '¹ÔޥޥޥÁ°¡¢¸å¡¢º¸¡¢±¦
¡¡¡¡¡¡¡¡¡¡¡¡For x As Integer = 0 To imgRect.GetUpperBound(1) 'Î󎥎¥Ž¥£±¡¤£²¡¤£³¡¤£´
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡imgRect(y, x) = New Rectangle(x * 32, y * 32, 32, 32)
¡¡¡¡¡¡¡¡¡¡¡¡Next
¡¡¡¡¡¡¡¡Next
¡¡¡¡¡¡¡¡iNo = 0
¡¡¡¡¡¡¡¡direct = Direction.down 'Á°¸þ¤­
¡¡¡¡¡¡¡¡lastTime = 0.0
¡¡¡¡¡¡¡¡swatch.Reset( )
¡¡¡¡¡¡¡¡swatch.Start( )

¡¡¡¡¡¡¡¡pos = New Point(0, 0)
¡¡¡¡¡¡¡¡loc = New PointF(pos.X * 32, pos.Y * 32)

¡¡¡¡¡¡¡¡vel = New PointF(32, 0)
¡¡¡¡¡¡¡¡MoveFlg = False
¡¡¡¡End Sub

¡¡¡¡Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
¡¡¡¡¡¡¡¡Dim g As Graphics = e.Graphics
¡¡¡¡¡¡¡¡Dim nowTime As Double = swatch.ElapsedMilliseconds / 1000.0 'Paint¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤¿½Ö´Ö¤Î»þ´Ö
¡¡¡¡¡¡¡¡Dim elapsedTime As Double = nowTime - lastTime
¡¡¡¡¡¡¡¡lastTime = nowTime
¡¡¡¡¡¡¡¡'²èÁüÀÚ¤êÂØ¤¨½èÍý
¡¡¡¡¡¡¡¡iNo = CInt(Fix((nowTime * 2) Mod 4.0F))
¡¡¡¡¡¡¡¡If MoveFlg = True Then
¡¡¡¡¡¡¡¡¡¡¡¡loc.X += vel.X * CSng(elapsedTime) 'XºÂɸ¤Î°Üư
¡¡¡¡¡¡¡¡¡¡¡¡loc.Y += vel.Y * CSng(elapsedTime) 'YºÂɸ¤Î°Üư
¡¡¡¡¡¡¡¡¡¡¡¡If Math.Abs(loc.X - dep.X) >= 32 OrElse Math.Abs(loc.Y - dep.Y) > 32 Then 'XYºÂɸ¤¬³«»ÏºÂɸ¤«¤é32¥Ô¥¯¥»¥ë°Üư¤·¤Æ¤¤¤ë¤«
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡MoveFlg = False
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pos.X += vel.X \ 32 '¥Ö¥í¥Ã¥¯ºÂɸ¤Î»»½Ð
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pos.Y += vel.Y \ 32 '¥Ö¥í¥Ã¥¯ºÂɸ¤Î»»½Ð
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡loc = New PointF(pos.X * 32, pos.Y * 32) '¥Ö¥í¥Ã¥¯ºÂɸ¤«¤éÊÑ´¹
¡¡¡¡¡¡¡¡¡¡¡¡End If
¡¡¡¡¡¡¡¡End If

¡¡¡¡¡¡¡¡'²èÁüÉÁ²è½èÍý
¡¡¡¡¡¡¡¡g.DrawImage(img, loc.X, loc.Y, imgRect(direct, iNo), GraphicsUnit.Pixel)
¡¡¡¡¡¡¡¡Me.Invalidate( ) '¶¯À©ºÆÉÁ²è
¡¡¡¡End Sub

¡¡¡¡Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
¡¡¡¡¡¡¡¡If MoveFlg = False Then '¥¢¥Ë¥á¡¼¥·¥ç¥ó¤·¤Æ¤¤¤Ê¤±¤ì¤Ð
¡¡¡¡¡¡¡¡¡¡¡¡Select Case e.KeyCode
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Case Keys.Up
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡direct = Direction.up
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡vel = New PointF(0, -32)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡MoveFlg = True
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Case Keys.Down
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡direct = Direction.down
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡vel = New PointF(0, 32)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡MoveFlg = True
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Case Keys.Left
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡direct = Direction.left
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡vel = New PointF(-32, 0)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡MoveFlg = True
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Case Keys.Right
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡direct = Direction.right
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡vel = New PointF(32, 0)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡MoveFlg = True
¡¡¡¡¡¡¡¡¡¡¡¡End Select
¡¡¡¡¡¡¡¡¡¡¡¡dep = loc '°Üư³«»Ï»þ¤ÎºÂɸ¤òµ­Ï¿
¡¡¡¡¡¡¡¡End If
¡¡¡¡End Sub
End Class

°Ê¾å¤Ç¥­¥ã¥é¥¯¥¿¡¼¤ò¥«¡¼¥½¥ë¥­¡¼¤Ç°Üư¤µ¤»¤ë¥¢¥Ë¥á¡¼¥·¥ç¥ó¤Ï´°À®¤Ç¤¹¡£
RPG¥²¡¼¥à¤ËɬÍפʤâ¤Î¤Ï¤Þ¤À¤Þ¤À¤¢¤ê¤Þ¤¹¤¬Ž¥Ž¥Ž¥
¼¡¤Ï¥Þ¥Ã¥×¥Á¥Ã¥×¤ËÄ©À路¤Æ¤ß¤Þ¤¹¤«¡£

0·ï¤Î¥³¥á¥ó¥È

¥³¥á¥ó¥È¤ÎÅê¹Æ

¿·µ¬
Åê¹Æ¤·¤¿ÆâÍÆ¤Ï´ÉÍý¼Ô¤Ë¤À¤±±ÜÍ÷½ÐÍè¤Þ¤¹

0·ï¤Î¥È¥é¥Ã¥¯¥Ð¥Ã¥¯

¥È¥é¥Ã¥¯¥Ð¥Ã¥¯URL
http://hinagis.blog33.fc2.com/tb.php/30-85b23ba2
¤³¤Îµ­»ö¤ËÂФ·¤Æ¥È¥é¥Ã¥¯¥Ð¥Ã¥¯¤òÁ÷¿®¤¹¤ë¡ÊFC2¥Ö¥í¥°¥æ¡¼¥¶¡¼¡Ë

Appendix

ºÇ¿·µ­»ö

¸¡º÷¥Õ¥©¡¼¥à

·îÊÌ¥¢¡¼¥«¥¤¥Ö

Çä¤ì¶Ú¥é¥ó¥­¥ó¥°

¤ª³Ú¤·¤ßÍÑ

¥¢¥Ë¥á¥°¥Ã¥º

¥×¥í¥Õ¥£¡¼¥ë

Author:¤Ò¤Ê¤®
VB2005&2008¤Ç¥²¡¼¥àºîÀ®Ãæ

FC2¥«¥¦¥ó¥¿¡¼

Powered By FC2¥Ö¥í¥°

º£¤¹¤°¥Ö¥í¥°¤òºî¤í¤¦¡ª

Powered By FC2¥Ö¥í¥°