ผลต่างระหว่างรุ่นของ "Oop lab/arcade/snake"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 35: แถว 35:
  
 
{{gitcomment|commit งานด้วย!}}
 
{{gitcomment|commit งานด้วย!}}
 +
 +
=== sprite และ snake ===
 +
 +
เราจะใช้รูปด้านล่างขนาด 16 x 16 แทนตัวงู
 +
 +
[[Image:Block.png]]
 +
 +
ดาวน์โหลดที่ [https://raw.githubusercontent.com/jittat/arcade-snake/master/images/block.png] แล้วเซฟในโพลเดอร์ <tt>images</tt> ในชื่อ <tt>block.png</tt>
 +
 +
จากนั้นแก้ <tt>SnakeWindow</tt> ดังนี้
 +
 +
สร้าง arcade.Sprite ใน __init__
 +
 +
<syntaxhighlight lang="python">
 +
    def __init__(self, width, height):
 +
        # ... ละบรรทัดอื่นไว้
 +
 +
        self.snake_sprite = arcade.Sprite('images/block.png')
 +
        self.snake_sprite.set_position(300,300)
 +
</syntaxhighlight>
 +
 +
และสร้างเมท็อด <tt>on_draw</tt> มาวาด sprite
 +
 +
<syntaxhighlight lang="python">
 +
    def on_draw(self):
 +
        arcade.start_render()
 +
 +
        self.snake_sprite.draw()
 +
</syntaxhighlight>

รุ่นแก้ไขเมื่อ 21:06, 14 กันยายน 2560

หน้านี้เป็นส่วนหนึ่งของ oop lab

จุดวิ่ง

ในส่วนแรกเราจะทำงูขนาด 1 ช่องวิ่งไปมาก่อน

เริ่มด้วยเกมว่าง ๆ

ก่อนเริ่ม อย่าลืมสร้าง git repository ไว้ที่ที่จะทำด้วย โดยสั่ง

git init

เราจะเริ่มโดยสร้างคลาส SnakeWindow ว่าง ๆ ไว้ก่อน ทั้งหมดนี้เขียนในไฟล์ snake.py

import arcade

SCREEN_WIDTH = 600
SCREEN_HEIGHT = 600

class SnakeWindow(arcade.Window):
    def __init__(self, width, height):
        super().__init__(width, height)
 
        arcade.set_background_color(arcade.color.BLACK)

 
if __name__ == '__main__':
    window = SnakeWindow(SCREEN_WIDTH, SCREEN_HEIGHT)
    arcade.set_window(window)
    arcade.run()

ทดลองรัน

ถ้าทดลองรันได้ อย่าลืม git add snake.py แล้วก็

Gitmark.png commit งานด้วย!

sprite และ snake

เราจะใช้รูปด้านล่างขนาด 16 x 16 แทนตัวงู

Block.png

ดาวน์โหลดที่ [1] แล้วเซฟในโพลเดอร์ images ในชื่อ block.png

จากนั้นแก้ SnakeWindow ดังนี้

สร้าง arcade.Sprite ใน __init__

    def __init__(self, width, height):
        # ... ละบรรทัดอื่นไว้

        self.snake_sprite = arcade.Sprite('images/block.png')
        self.snake_sprite.set_position(300,300)

และสร้างเมท็อด on_draw มาวาด sprite

    def on_draw(self):
        arcade.start_render()

        self.snake_sprite.draw()